Zpět na domů

Rozpoznávání řeči Whisper v C# pro schůze

Program v C# zachytává systémový audioprůtok, používá Whisper pro STT a překládá přes Azure/OpenAI. Optimální Small model, nastavení VAD pro fráze. Modulární architektura pro rozšíření.

C# utilita: Whisper STT + překlad v reálném čase
Advertisement 728x90

Automatické rozpoznávání a překlad řeči v reálném čase v C#

Program zachytává zvukový proud z aplikací jako Teams, rozděluje jej na věty podle hlasitosti a pauz. Následně provádí Whisper STT do ruštiny, angličtiny nebo francouzštiny, za nímž následuje překlad. Implementace v C# používá přibližně 20 % ručního kódu, zbytek tvoří integrace. Podporuje režim diktování při výběru jednoho jazyka: pouze rozpoznávání s možností ukládání zvuku.

Nastavení umožňuje kalibrovat:

  • Hlasitost hlasu pro detekci řeči.
  • Délku pauzy mezi větami.

Statistika v pravém dolním rohu zobrazuje aktuální úrovně zvuku a indikátory detekce – ideální pro přesné ladění. Zachycení funguje pouze prostřednictvím systémového mixéru (sluchátka nebo reproduktory), mikrofon přímo není podporován.

Google AdInline article slot

Výběr modelu Whisper a výkon

Testovány lokální řešení pro STT:

  • Sherpa (ONNX): streamová verze pro francouzštinu nevyhověla architektuře.
  • Foundry Local (Microsoft): hrubé, souborová komunikace, založené na Whisper.

Vybrali jsme Whisper:

| Model | Rychlost | Logika | Poznámky |

Google AdInline article slot

|--------|----------|--------|-------------|

| Base | Rychlá | Ne | Minimální, bez kontextu |

| Small | Střední | Ano | Optimální vyváženost, teplota 0,1–0,2 |

Google AdInline article slot

| Medium | Pomalá | Dobrá | Fronta částí roste během živých schůzek |

Bez NPU/GPU je zatížení RAM, ale kvalita je přijatelná při dobrém zvuku z konferencí.

Integrace překladačů

Dva možné přístupy:

  • OpenAI: klíč, model, URL v nastavení.
  • Azure Translator: klíč, 2 miliony znaků/měsíc zdarma, vyžaduje účet.

Rozhraní ITranslationService usnadňuje přidávání nových služeb (Yandex API je možné s fakturací). Lokální překladače se nepodařilo najít ekvivalenty s dostatečnou kvalitou.

Příklad konfigurace pro Azure:

public class AzureTranslationService : ITranslationService
{
    private readonly string _key;
    // ...
}

Praktické scénáře a omezení

Nástroj řeší úkol v reálném čase pro konference v cizích jazycích bez nahrávání. Testován na francouzštině, angličtině a ruštině. Není univerzálním nahrávačem – pouze systémový výstup.

Pro middle/senior: architektura modulární, zaměření na streamovou práci s částmi. Rozšíření prostřednictvím nahrazení STT/překladu nebo přidání VAD algoritmů.

Důležité:

  • Zachycení systémového zvuku, rozdělení vět podle parametrů podobných VAD.
  • Whisper Small je optimální pro RT: teplota 0,1–0,2, bez GPU.
  • Jednoduché rozhraní pro překladače, Azure zdarma až 2M znaků.
  • Režim STT-only pro transkripci bez překladu.
  • Statistika pro ladění detekce řeči.

— Editorial Team

Advertisement 728x90

Číst dál