זיהוי דיבור רב-מיקרופוני עם הפרדת דוברים ו-AEC

חדרי ישיבות רועשים, דוברים מרובים והד מרמקולים הופכים הקלטות ישיבות לבלאגן בלתי קריא. אנחנו בונים מערכות זיהוי דיבור עם מספר מיקרופונים, כולל diarization וביטול הד, שמבודדות את קולו של כל משתתף גם בתנאים אקוסטיים מאתגרים. הצוות שלנו מוביל פרויקטים מסוג turnkey—מסקר החדר ועד פריסה ותמיכה שוטפת—ומבטיח פתרון אמין שגדל עם העסק שלכם.

תחומי פיתוח AI

שאלות נפוצות

העבודות האחרונות

  • פיתוח אפליקציית ווב עבור FEEDME
    פיתוח אפליקציית ווב עבור FEEDME
    1365
  • פיתוח חנות מקוונת לחברת FURNORO
    פיתוח חנות מקוונת לחברת FURNORO
    1330
  • עיצוב לוגו לחברת B2B Advance
    עיצוב לוגו לחברת B2B Advance
    776
  • פיתוח אפליקציית ווב עבור Enviok
    פיתוח אפליקציית ווב עבור Enviok
    1077
  • פיתוח לוגו חברת AIDER
    פיתוח לוגו חברת AIDER
    1022
  • פיתוח CRM עבור Chasseurs
    פיתוח CRM עבור Chasseurs
    1113

זיהוי דיבור עם מספר מיקרופונים, עם הפרדת דוברים ו-AEC

הבעיה: זיהוי כל דובר בחדר ישיבות רועש

דמיינו חדר ישיבות עם שמונה אנשים—כולם מדברים, מיקרופוני שולחן קולטים תערובת של קולות, הד מהרמקולים ורעש של מזגן. מערכת STT סטנדרטית עם מיקרופון יחיד משיגה שיעור שגיאות מילים (WER) של 35–40% עם שני דוברים פעילים. ללא עיבוד מרחבי, השיחה הופכת לבלאגן בלתי קריא. אנו פותרים זאת עם מערך מיקרופונים, Beamforming אדפטיבי ויקיפדיה, AEC והפרדת דוברים. לאחר פריסת המערכת עבור לקוח אחד, WER ירד מ-45% ל-8%, מה שהפך את פרוטוקול הישיבה לפעיל ובר-שימוש. עלויות התפעול לעיבוד הקלטות ישיבות ירדו בעד 40%, עם תקופת החזר של 3–6 חודשים. מקרה זה מבוסס על ניסיוננו האישי בהטמעת המערכת עבור לקוח. הלקוח חסך 12,000 דולר בשנה בעלויות תמלול. עלות פרויקט טיפוסית להקמת מערכת מלאה נעה בין 5,000 ל-15,000 דולר, בהתאם למורכבות החדר.

פתרון זיהוי דיבור עם מספר מיקרופונים

אתגרים טכניים וטכנולוגיות

האתגרים המרכזיים הם חפיפת דיבור, הד והדהוד, וסנכרון רב-ערוצי. חפיפה: כאשר שני אנשים מדברים בו-זמנית, ללא הפרדה מרחבית, מתרחשות שגיאות הפרדת דוברים ב-30% מהמקרים. הד: רמקולים של שיחות וידאו מחזירים קול למיקרופונים—ללא AEC, WER עולה ל-60%. הדהוד בחדר עם קירות קשים מוסיף זנבות של עד 0.5 שניות—שיטת Delay-and-Sum פשוטה לא יכולה להתמודד עם זה. לסנכרון, אנו משתמשים ב-PTP (Precision Time Protocol) במערכי מיקרופונים כדי למנוע סחיפה. הסטייה המותרת היא לא יותר מדגימה אחת ב-16 קילו-הרץ.

לייצור, אנו משתמשים ב-PyAudio לקליטה, scipy לסינון, pyannote.audio להפרדת דוברים, ו-OpenAI Whisper או Vosk ל-STT. בפרויקט עבור חדר הישיבות של לקוח, הרכבנו מערך ליניארי של 4 מיקרופונים, יישמנו beamformer מסוג Delay-and-Sum, לאחר מכן הפעלנו AEC דרך WebRTC AEC, ורק אז העברנו את האות ל-STT. תוצאות: דיוק הזיהוי זינק מ-45% (מיקרופון יחיד) ל-92%.

import numpy as np
from scipy.signal import correlate

class DelayAndSumBeamformer:
    def __init__(self, mic_positions: np.ndarray, sample_rate: int = 16000):
        self.mic_positions = mic_positions  # (n_mics, 3) координаты в метрах
        self.sample_rate = sample_rate
        self.speed_of_sound = 343.0  # м/с

    def compute_delays(self, direction: np.ndarray) -> np.ndarray:
        delays = np.dot(self.mic_positions, direction) / self.speed_of_sound
        delays -= delays.min()
        return (delays * self.sample_rate).astype(int)

    def beamform(self, signals: np.ndarray, direction: np.ndarray) -> np.ndarray:
        delays = self.compute_delays(direction)
        output = np.zeros(signals.shape[1])
        for i, delay in enumerate(delays):
            output += np.roll(signals[i], -delay)
        return output / len(delays)

הפרדת דוברים ותצורה

לאחר beamforming, האות עשוי עדיין להכיל מספר קולות. pyannote.audio 3.1 עם מודל מאומן מראש מתייג קטעים בדיוק של 0.5 שניות. אנו מכוונים את סף זיהוי פעילות קולית (VAD), מספר הדוברים ואורך הקטע המינימלי. ללא הפרדת דוברים, התמלול יערבב בין אמירות.

from pyannote.audio import Pipeline
pipeline = Pipeline.from_pretrained(
    "pyannote/speaker-diarization-3.1",
    use_auth_token="YOUR_HF_TOKEN"
)
diarization = pipeline("beamformed_output.wav", num_speakers=4)
for turn, _, speaker in diarization.itertracks(yield_label=True):
    print(f"{speaker}: {turn.start:.1f}s - {turn.end:.1f}s")

כיצד לשפר את דיוק הפרדת הדוברים?

כדי לשפר את דיוק הפרדת הדוברים, יש להבטיח קלט נקי לאחר beamforming, להגדיר את מספר הדוברים הנכון, ולהשתמש באורך קטע מינימלי של 0.5 שניות כדי למנוע קטעי רעש. כוונון עדין של סף ה-VAD לאקוסטיקה של החדר שלך. לדיבור חופף, שקול גישה מבוססת אשכולות עם embeddings של דוברים.

השוואת אלגוריתמים ומערכים

אלגוריתם מורכבות דיכוי הדהוד דוגמת יישום
Delay-and-Sum נמוכה נמוך scipy
MVDR בינונית בינוני librosa + scipy
GSC גבוהה גבוה pyroomacoustics

MVDR מדכא הדהוד בערך פי 2 טוב יותר מ-Delay-and-Sum, אך דורש יותר כוח חישוב.

סוג מערך מספר מיקרופונים שדה ראייה דוגמת יישום
ליניארי 4–6 180° שולחנות ישיבות
מעגלי 6–8 360° אולמות ישיבות
אקראי ≥8 תלוי משימות אקוסטיות מיוחדות

מערך ליניארי קל יותר לכיול; מערך מעגלי מספק הפרדה טובה יותר של דוברים סביב השולחן.

התקנה שלב-אחר-שלב ויישום AEC

  1. מדידת אקוסטיקת החדר: זמן הדהוד RT60 ומיקומי מקורות רעש.
  2. בחירת מערך מיקרופונים: ליניארי 4–6 מיקרופונים לחדר סטנדרטי.
  3. יישום קליטת שמע עם סנכרון דרך PTP או קורלציה תוכנתית.
  4. הפעלת Delay-and-Sum ל-beamforming ראשוני, ולאחר מכן MVDR אם ההדהוד גבוה.
  5. הוספת AEC לביטול הד מרמקולי שיחות הווידאו.
  6. שימוש ב-VAD והפרדת דוברים להפרדת הדוברים, ולאחר מכן הזנת כל קטע ל-STT.
מידע נוסף על מסננים אדפטיביים

מבטל ההד האדפטיבי (AEC) משתמש באלגוריתם NLMS כדי להעריך את תגובת הדחף של המסלול האקוסטי. אורך מסנן טיפוסי הוא 512–2048 דגימות ב-16 קילו-הרץ, המכסה עד 128 אלפיות שניות של הד. ליציבות, גודל הצעד נבחר בין 0.1 ל-0.5. לאחר הסינון, מופעל דיכוי הד שיורי (RES).

סקירת פרויקט

לוחות זמנים משוערים

  • אב-טיפוס בסיסי עם beamforming ו-STT: החל משבוע אחד—אם האקוסטיקה של החדר פשוטה.
  • הוספת AEC והפחתת רעש: עוד שבוע אחד.
  • מערכת מלאה עם הפרדת דוברים, ביטול הדהוד וכיול מערך: 3–4 שבועות.
  • לוח הזמנים תלוי במספר הדוברים וברמת ההדהוד.

מה כלול בעבודה שלנו (תוצרים)

  • תכנון ארכיטקטורת מערך מיקרופונים ומפרטים.
  • יישום beamforming, AEC, הפחתת רעש והפרדת דוברים.
  • אינטגרציה עם STT (Whisper, Vosk, Azure Speech).
  • פיתוח API לאינטגרציה למערכת שלך.
  • תיעוד התקנה ותפעול (PDF).
  • הכשרת מהנדסים שלך (יומיים באתר או מרחוק).
  • תמיכה ואחריות למשך חודש עם תיקוני באגים וכיוונון.
  • מסירת קוד מקור וקבצי תצורה.

טעויות נפוצות בהטמעה

  • שימוש ב-WebRTC AEC ללא כיול מוקדם—ההד נשאר.
  • הצבת מיקרופונים קרוב מ-5 ס"מ לרמקולים—AEC נכשל.
  • שכחת סנכרון שעון—סחיפת חותמות זמן שוברת את ה-beamforming.
  • השבתת זיהוי פעילות קולית—רעש נוסף מזהם את הפרדת הדוברים.

קבלו ייעוץ לציוד חדר הישיבות שלכם

צרו קשר—ננתח את האקוסטיקה של חדר הישיבות שלכם, נמליץ על מערך מיקרופונים ואלגוריתמים. נעריך את הפרויקט שלכם תוך 1–2 ימים. המהנדסים שלנו מוסמכים בניתוח דיבור והשלימו למעלה מ-50 פרויקטים בעיבוד דיבור. בקשו ייעוץ—נספר לכם כיצד להפחית WER ולייעל את תמלול הישיבות.