הודעות קוליות הן הפורמט הגרוע ביותר לאחזור מידע מהיר. במיוחד בצ'אט ארגוני: הודעה קולית של דקה במקום שורת טקסט אחת. אנחנו פותרים זאת על ידי הטמעת תמלול ישירות באפליקציה הניידת שלך. המשתמש מדבר—האפליקציה ממירה דיבור לטקסט בדיוק של עד 95%. הטקסט מסונכרן עם האודיו: הקש על כל מילה כדי לשמוע אותה. טכנית, זה אומר אינטגרציה עם Whisper API או פתרונות מקומיים, הטמעת לכידת אודיו, המרה לפורמט אופטימלי (16 קילוהרץ מונו MP3 32 קילוביט לשנייה), שליחה לשרת, וקבלת תמלול עם חותמות זמן כל 200–300 אלפיות שנייה. לאחר מכן עיבוד לאחר, סינון רעשים, והצגה בממשק אינטראקטיבי. כל המחזור מלחיצה על הכפתור ועד לטקסט הנראה אורך 0.5 עד 3 שניות תלוי באורך ההקלטה. אחד הפרויקטים שלנו בפינטק הראה הפחתה של 60% בזמן עיבוד פרוטוקולים של פגישות—חיסכון של כ-2,000 דולר לחודש.
איך פועלת לכידת האודיו באפליקציה
בפועל, אפליקציה ניידת עובדת עם שני מסלולים:
הקלטה בתוך האפליקציה. המשתמש מקליט ישירות באפליקציה שלך—לכידה מקורית, שליטה מלאה בפורמט. אנחנו משתמשים ב-AVAudioRecorder ב-iOS וב-MediaRecorder באנדרואיד. קצב הדגימה של 16 קילוהרץ נבחר על סמך משפט נייקוויסט לדיבור (תוכן תדר מקסימלי של 8 קילוהרץ), וקודק ה-MP3 ב-32 קילוביט לשנייה מבטיח דחיסה ללא אובדן משמעותי של מידע פונטי.
ייבוא קובץ חיצוני. קבל WAV/MP3/OGG משליח הודעות דרך גיליון שיתוף. ב-iOS—UTType.audio ב-UIDocumentPickerViewController. באנדרואיד—ACTION_GET_CONTENT עם "audio/*". פורמט הקובץ חשוב. OGG Opus (פורמט טלגרם) Whisper מבין באופן טבעי. AMR (שליחים אנדרואיד ישנים)—דורש המרה. בשרת, ffmpeg מטפל בהמרה של כל פורמט:
import subprocess
def convert_to_mp3(input_path: str, output_path: str) -> None:
subprocess.run([
"ffmpeg",
"-i", input_path,
"-ar", "16000", # 16kHz достаточно для речи
"-ac", "1", # моно
"-b:a", "32k", # 32kbps для речи
output_path
], check=True)
16 קילוהרץ מונו MP3 32 קילוביט לשנייה—אופטימלי ל-Whisper: האיכות לא יורדת, גודל הקובץ מינימלי.
למה Whisper API היא לא האפשרות היחידה
Whisper API: הודעה של 10 שניות מעובדת ב-0.5–1.5 שניות. הודעה של דקה ב-3–8 שניות. זה כולל זמן עיבוד בשרתי OpenAI ועוד רשת. מקובל עבור המשתמש אם מוצגת התקדמות. לפי מאגר GitHub של OpenAI Whisper, המודל משיג דיוק ברמה הגבוהה ביותר.
Deepgram Nova-2—תמלול סטרימינג בזמן אמת, השהיה <300 אלפיות שנייה על קטעים קצרים. יקר יותר מ-Whisper, אבל מהיר יותר. Deepgram Nova-2 מציעה השהיה מתחת ל-300 אלפיות שנייה, מהיר עד פי 10 מ-Whisper API לקטעים קצרים.
Whisper מקומי (מארח עצמי). import subprocess def convert_to_mp3(input_path: str, output_path: str) -> None: subprocess.run([ "ffmpeg", "-i", input_path, "-ar", "16000", # 16kHz достаточно для речи "-ac", "1", # моно "-b:a", "32k", # 32kbps для речи output_path ], check=True) על GPU (RTX 3090) מעבד דקה של אודיו ב-2–4 שניות. על CPU—15–30 שניות. אם אי אפשר לשלוח נתונים לענן—האפשרות היחידה.
תמלול בצד הלקוח ב-iOS. faster-whisper—מסגרת הדיבור המקורית של אפל, עובדת על המכשיר (מאז iOS 16), חינמית, ללא שליחת נתונים. אבל: תומכת רק במספר מוגבל של שפות, איכות נמוכה יותר מ-Whisper, מגבלה של דקה אחת לבקשה.
// iOS — локальная транскрипция через SFSpeechRecognizer
let recognizer = SFSpeechRecognizer(locale: Locale(identifier: "ru-RU"))
let request = SFSpeechURLRecognitionRequest(url: audioURL)
request.shouldReportPartialResults = true
recognizer?.recognitionTask(with: request) { result, error in
guard let result else { return }
DispatchQueue.main.async {
self.transcriptText = result.bestTranscription.formattedString
}
}להערות אישיות קצרות, SFSpeechRecognizer היא אפשרות טובה ללא עלויות שרת. להקלטות פגישות ארגוניות—Whisper או Deepgram.
השוואת שיטות תמלול
| שיטה | השהיה | איכות | עלות | פרטיות |
|---|---|---|---|---|
| Whisper API | 0.5–8 שניות | מצוינת | $0.006/דקה | נתונים נשלחים לשרת |
| Deepgram Nova-2 | <300 אלפיות שנייה | מצוינת | גבוהה יותר | נתונים נשלחים לשרת |
| Whisper מקומי (GPU) | 2–4 שניות לדקה | מצוינת | חומרה בלבד | מקומי לחלוטין |
| SFSpeechRecognizer (iOS) | מיידי | בינונית | חינם | מקומי לחלוטין |
איך להציג תמלול עם חותמות זמן
תמלול פשוט—רק טקסט. תמלול טוב במובייל:
- טקסט אינטראקטיבי עם חותמות זמן: הקש על מילה → האודיו קופץ לרגע הזה
- פיסוק (Whisper משחזר אותו היטב, אבל לא מושלם—לפעמים נדרש עיבוד לאחר)
- פסקאות לפי הפסקות (Whisper מפצל אודיו—השתמש ב-
// iOS — локальная транскрипция через SFSpeechRecognizer let recognizer = SFSpeechRecognizer(locale: Locale(identifier: "ru-RU")) let request = SFSpeechURLRecognitionRequest(url: audioURL) request.shouldReportPartialResults = true recognizer?.recognitionTask(with: request) { result, error in guard let result else { return } DispatchQueue.main.async { self.transcriptText = result.bestTranscription.formattedString } }לפיצול) - כפתור העתקת כל הטקסט
- חיפוש בתוך התמלול
לפונקציונליות בסגנון שליח: התמלול מופיע בסטרימינג—אל תחכה להשלמה מלאה, הצג קטעים כשהם מוכנים.
עיבוד לאחר של התמלול
Whisper לפעמים מכניס SFSpeechRecognizer, segments בסימון Whisper, מתמלל רעשי רקע. אנחנו מסננים אותם:
import re
def clean_transcript(text: str) -> str:
# Удаляем нотации Whisper типа [Музыка], [Noise]
text = re.sub(r'\[.*?\]', '', text)
# Убираем лишние пробелы
text = re.sub(r'\s+', ' ', text).strip()
return textלתרחישים עסקיים, עיבוד לאחר עם LLM שימושי: תיקון שמות פרטיים, מונחים, הוספת פיסוק במקומות ש-Whisper עשה טעויות. תמלול זה בצד השרת למובייל מבטיח איכות גבוהה.
מה כלול בעבודה
- קוד מקור של מודול התמלול ל-iOS ולאנדרואיד
- תיעוד על הארכיטקטורה ו-REST API (אם יש צד שרת)
- גישה לשירותים (OpenAI, Deepgram) עם מפתחות מוכנים
- הדרכת צוות וייעוץ במהלך האינטגרציה
- תמיכה 24/7 לאחר ההשקה
איך ליישם תמלול: תוכנית שלב אחר שלב
- ניתוח—דיון במקרי שימוש, מחסנית טכנולוגית, דרישות השהיה ופרטיות.
- עיצוב—ארכיטקטורה של לכידה, תמלול והצגה.
- יישום—אינטגרציה של Whisper/Deepgram, קוד ל-iOS/אנדרואיד, המרה בצד השרת.
- בדיקות—אימות על הקלטות אמיתיות, אופטימיזציה למקרה שלך.
- השקה—פרסום ב-App Store וב-Google Play, הגדרת ניטור.
- תיעוד והדרכה—מסירת קוד, הוראות, הדרכת הצוות שלך.
- תמיכה—אחריות ליציבות 24/7 לאחר ההשקה.
לוחות זמנים ועלות
| שלב | משך |
|---|---|
| לכידת אודיו + ייבוא קבצים | 3–5 ימים |
| תמלול בצד השרת (Whisper) + התקדמות | 5–7 ימים |
| עיבוד לאחר ועיצוב | 2–3 ימים |
| ממשק משתמש נייד עם תמלול אינטראקטיבי | 5–7 ימים |
| אופציונלי: סטרימינג, SFSpeechRecognizer מקומי | +3–5 ימים |
תמלול בסיסי דרך Whisper עם הצגת טקסט פשוטה—1–2 שבועות. כלי מלא עם טקסט אינטראקטיבי, חותמות זמן ועיבוד לאחר—3–4 שבועות. עלות האינטגרציה נקבעת באופן אישי.
עם ניסיון של למעלה מ-5 שנים באינטגרציית דיבור במובייל ו-30+ יישומים מוצלחים ללקוחות פינטק ובריאות, הצוות שלנו מבטיח מסירה אמינה. צור קשר להערכה חינמית של הפרויקט שלך. בקש גרסת הדגמה לבדיקה על נתונים אמיתיים.







