Nasazení vlastního řešení řeči na text

Azure AI services
Azure AI Speech
Azure Machine Learning

Nápady na řešení

Tento článek je myšlenkou řešení. Pokud chcete, abychom obsah rozšířili o další informace, jako jsou potenciální případy použití, alternativní služby, aspekty implementace nebo pokyny k cenám, dejte nám vědět tím, že nám poskytnete zpětnou vazbu k GitHubu.

Tento článek je průvodce implementací a ukázkový scénář, který poskytuje ukázkové nasazení řešení popsaného v tématu Implementace vlastního převodu řeči na text:

Architektura

Diagram znázorňující architekturu pro implementaci vlastní řeči na text

Stáhněte si soubor aplikace Visio s touto architekturou.

Workflow

  1. Shromážděte existující přepisy, které můžete použít k trénování vlastního modelu řeči.
  2. Pokud jsou přepisy ve formátu WebVTT nebo SRT, vyčistěte soubory tak, aby obsahovaly pouze textové části přepisů.
  3. Normalizuje text odebráním libovolné interpunkce, oddělením opakovaných slov a pravopisem všech velkých číselných hodnot. Pokud chcete vytvořit jednu datovou sadu, můžete zkombinovat několik vyčištěných přepisů do jednoho. Podobně vytvořte datovou sadu pro testování.
  4. Jakmile jsou datové sady připravené, nahrajte je pomocí sady Speech Studio. Pokud je datová sada v úložišti objektů blob, můžete také použít rozhraní API pro převod řeči na text (STT) Azure a rozhraní příkazového řádku služby Speech. V rozhraní API a rozhraní příkazového řádku můžete předat identifikátor URI datové sady a vytvořit datovou sadu pro trénování a testování modelu.
  5. V sadě Speech Studio nebo prostřednictvím rozhraní API nebo rozhraní příkazového řádku použijte novou datovou sadu k trénování vlastního modelu řeči.
  6. Vyhodnoťte nově natrénovaný model s testovací datovou sadou.
  7. Pokud výkon vlastního modelu splňuje vaše očekávání kvality, publikujte ho pro použití v přepisu řeči. V opačném případě můžete pomocí nástroje Speech Studio zkontrolovat míru chyb slov (WER) a konkrétní podrobnosti o chybách a určit, jaká další data jsou potřeba pro trénování.
  8. Rozhraní API a rozhraní příkazového řádku vám pomůžou zprovoznit proces sestavení, vyhodnocení a nasazení modelu.

Komponenty

  • Azure Machine Učení je služba na podnikové úrovni pro kompletní životní cyklus strojového učení.
  • Služby Azure AI jsou sadou rozhraní API, sad SDK a služeb, které vám pomůžou zajistit, aby vaše aplikace byly inteligentnější, poutavější a zjistitelné.
    • Speech Studio je sada nástrojů založených na uživatelském rozhraní pro vytváření a integraci funkcí ze služby Azure AI Speech do vašich aplikací. Tady je to jedna alternativa pro trénovací datové sady. Slouží také ke kontrole výsledků trénování.
    • Rozhraní REST API pro převod řeči na text je rozhraní API , které můžete použít k nahrání vlastních dat, testování a trénování vlastního modelu, porovnání přesnosti mezi modely a nasazení modelu do vlastního koncového bodu. Můžete ho také použít k zprovoznění vytváření, vyhodnocování a nasazení modelu.
    • Speech CLI je nástroj příkazového řádku pro použití služby Speech, aniž byste museli psát kód. Poskytuje další alternativu k vytváření a trénování datových sad a k zprovoznění procesů.

Podrobnosti scénáře

Tento článek vychází z následujícího fiktivního scénáře:

Contoso, Ltd., je mediální společnost, která vysílá vysílání a komentáře k olympijským událostem. V rámci smlouvy o vysílání společnost Contoso poskytuje přepis událostí pro přístupnost a dolování dat.

Společnost Contoso chce použít službu Azure Speech k poskytování živého podtitu a přepisu zvuku pro události olympijských her. Společnost Contoso využívá ženy a muže komentátory z celého světa, kteří mluví s různorodými přízvuky. Každý jednotlivý sport má navíc specifickou terminologii, která může ztěžovat přepis. Tento článek popisuje proces vývoje aplikací pro tento scénář: poskytuje titulky pro aplikaci, která potřebuje poskytovat přesný přepis událostí.

Společnost Contoso už má tyto požadované požadované součásti:

  • Přepisy vygenerované člověkem pro předchozí olympijské události. Přepisy představují komentáře od různých sportovních a různorodých komentátorů.
  • Prostředek služby Azure Cognitive Service. Můžete ho vytvořit na webu Azure Portal.

Vývoj vlastní aplikace založené na řeči

Aplikace založená na řeči používá sadu Azure Speech SDK k připojení ke službě Azure Speech k vygenerování přepisu zvuku založeného na textu. Služba Speech podporuje různé jazyky a dva režimy plynulosti: konverzační a diktování. Pokud chcete vyvíjet vlastní aplikaci založenou na řeči, obvykle je potřeba provést tyto kroky:

  1. K vygenerování přepisů mluvených vět a promluv použijte Speech Studio, sadu Azure Speech SDK, Rozhraní příkazového řádku služby Speech nebo rozhraní REST API.
  2. Porovnejte vygenerovaný přepis s přepisem vygenerovaným člověkem.
  3. Pokud jsou některá slova specifická pro doménu přepsána nesprávně, zvažte vytvoření vlastního modelu řeči pro danou doménu.
  4. Projděte si různé možnosti vytváření vlastních modelů. Rozhodněte se, jestli bude jeden nebo mnoho vlastních modelů fungovat lépe.
  5. Shromážděte trénovací a testovací data.
  6. Ujistěte se, že jsou data v přijatelném formátu.
  7. Vytrénujte, otestujte a vyhodnoťte a nasaďte model.
  8. K přepisu použijte vlastní model.
  9. Zprovoznění procesu sestavení, vyhodnocení a nasazení modelu

Pojďme se podrobněji podívat na tyto kroky:

1. Použití sady Speech Studio, sady Azure Speech SDK, rozhraní příkazového řádku služby Speech nebo rozhraní REST API ke generování přepisů pro mluvené věty a promluvy

Azure Speech poskytuje sady SDK, rozhraní rozhraní příkazového řádku a rozhraní REST API pro generování přepisů ze zvukových souborů nebo přímo ze vstupu mikrofonu. Pokud je obsah ve zvukovém souboru, musí být v podporovaném formátu. V tomto scénáři má Společnost Contoso předchozí záznamy událostí (zvuk a video) v .avi souborech. Společnost Contoso může pomocí nástrojů, jako je FFmpeg , extrahovat zvuk ze videosouborů a uložit ho ve formátu podporovaném sadou Azure Speech SDK, jako je .wav.

V následujícím kódu se standardní zvukový kodek pcm_s16lePCM používá k extrakci zvuku v jednom kanálu (mono), který má vzorkovací frekvenci 8 kilohertz (Khz).

ffmpeg.exe -i INPUT_FILE.avi -acodec pcm_s16le -ac 1 -ar 8000 OUTPUT_FILE.wav

2. Porovnejte vygenerovaný přepis s přepisem vygenerovaným člověkem.

K porovnání společnost Contoso provede ukázky zvukového komentáře z více sportů a pomocí nástroje Speech Studio porovná přepis vygenerovaný člověkem s výsledky, které služba Azure Speech přepisuje. Přepisy vygenerované člověkem společnosti Contoso jsou ve formátu WebVTT. Pokud chcete tyto přepisy použít, společnost Contoso je vyčistí a vygeneruje jednoduchý soubor .txt, který má normalizovaný text bez informací časového razítka.

Informace o použití sady Speech Studio k vytvoření a vyhodnocení datové sady najdete v tématu trénování a testování datových sad.

Speech Studio poskytuje souběžné porovnání přepisu generovaného člověkem a přepisy vytvořené z modelů vybraných k porovnání. Výsledky testů zahrnují WER pro modely, jak je znázorněno tady:

Model Míra chyb Vložení Substituce Odstranění
Model 1: 20211030 14.69% 6 (2.84%) 22 (10.43%) 3 (1.42%)
Model 2: Olympics_Skiing_v6 6.16% 3 (1.42%) 8 (3.79%) 2 (0.95%)

Další informace o WER naleznete v tématu Vyhodnocení míry chyb slov.

Na základě těchto výsledků je vlastní model (Olympics_Skiing_v6) lepší než základní model (20211030) datové sady.

Všimněte si míry vložení a odstranění , které značí, že zvukový soubor je relativně čistý a má nízký šum na pozadí.

3. Pokud jsou některá slova specifická pro doménu přepsána nesprávně, zvažte vytvoření vlastního modelu řeči pro danou doménu.

Na základě výsledků v předchozí tabulce se pro základní model model Model 1: 20211030 nahradí přibližně 10 procent slov. V nástroji Speech Studio můžete pomocí podrobné funkce porovnání identifikovat slova specifická pro doménu, která se zmeškala. V následující tabulce je uvedena jedna část porovnání.

Přepis vygenerovaný člověkem Model 1 Model 2
olympijský šampion se vrátit zpět na sjezdové od devatenácti osm velký katja seizinger Německa, co devadesát čtyři a devadesát osm olympijský šampion, který se vrátí zpět na sjezdovce od devadesát osm skvělých úlovků je z Německa, co devadesát čtyři a devadesát osm olympijský šampion se vrátit zpět na sjezdové od devatenácti osm velký katja seizinger Německa, co devadesát čtyři a devadesát osm
ona dethroned the olympic champion goggia ona dethroned the olympic champion georgia ona dethroned the olympic champion goggia

Model 1 nerozpozná slova specifická pro doménu, jako jsou jména sportovců "Katia Seizinger" a "Goggia". Pokud je ale vlastní model natrénovaný daty, která obsahují jména sportovců a další slova a fráze specifické pro doménu, je schopen se je naučit a rozpoznat.

4. Projděte si různé možnosti vytváření vlastních modelů. Rozhodněte se, jestli bude jeden nebo mnoho vlastních modelů fungovat lépe.

Při experimentování s různými způsoby vytváření vlastních modelů společnost Contoso zjistila, že by mohla dosáhnout lepší přesnosti pomocí přizpůsobení modelu jazyka a výslovnosti. (Viz první článek v tomto průvodci.) Společnost Contoso také zaznamenala menší vylepšení, když zahrnula akustická (původní zvuková) data pro vytvoření vlastního modelu. Výhody ale nebyly dostatečně významné, aby se hodily udržovat a trénovat pro vlastní akustický model.

Společnost Contoso zjistila, že vytváření samostatných vlastních jazykových modelů pro každý sport (jeden model pro alpské lyžování, jeden model pro luge, jeden model pro snowboard atd.) poskytuje lepší výsledky rozpoznávání. Také si poznamenali, že vytváření samostatných akustických modelů založených na typu sportu pro rozšíření jazykových modelů nebylo nezbytné.

5. Shromažďování trénovacích a testovacích dat

Článek o trénování a testování datových sad obsahuje podrobnosti o shromažďování dat potřebných pro trénování vlastního modelu. Společnost Contoso shromáždila přepisy pro různé olympijské sporty od různých komentátorů a přizpůsobení jazykového modelu k vytvoření jednoho modelu na typ sportu. Použili však jeden výslovný soubor pro všechny vlastní modely (jeden pro každý sport). Vzhledem k tomu, že testovací a trénovací data jsou po vytvoření vlastního modelu oddělená, společnost Contoso použila zvuk událostí, jehož přepisy nebyly zahrnuty do trénovací datové sady pro vyhodnocení modelu.

6. Zajistěte, aby data byla v přijatelném formátu.

Jak je popsáno v datových sadách trénování a testování, datové sady, které se používají k vytvoření vlastního modelu nebo k otestování modelu, musí být v určitém formátu. Data společnosti Contoso jsou v souborech WebVTT. Vytvořili několik jednoduchých nástrojů pro vytváření textových souborů, které obsahují normalizovaný text pro přizpůsobení jazykového modelu.

7. Trénování, testování a vyhodnocení a nasazení modelu

Nové záznamy událostí se používají k dalšímu testování a vyhodnocení natrénovaného modelu. K vyladění modelu může trvat několik iterací testování a vyhodnocení. Když model vygeneruje přepisy s přijatelnými mírami chyb, nasadí se (publikováno) ze sady SDK.

8. Použití vlastního modelu pro přepis

Po nasazení vlastního modelu můžete k přepisu použít následující kód jazyka C#:

String endpoint = "Endpoint ID from Speech Studio";
string locale = "en-US";
SpeechConfig config = SpeechConfig.FromSubscription(subscriptionKey: speechKey, region: region);
SourceLanguageConfig sourceLanguageConfig = SourceLanguageConfig.FromLanguage(locale, endPoint);
recognizer = new SpeechRecognizer(config, sourceLanguageConfig, audioInput);

Poznámky k kódu:

  • endpoint je ID koncového bodu vlastního modelu nasazeného v kroku 7.
  • subscriptionKey a region jsou klíčem a oblastí předplatného služeb Azure AI. Tyto hodnoty můžete získat z webu Azure Portal tak, že přejdete do skupiny prostředků, ve které byl prostředek služeb Azure AI vytvořen, a podíváte se na jeho klíče.

9. Zprovoznění procesu sestavení, vyhodnocení a nasazení modelu

Po publikování vlastního modelu je potřeba ho pravidelně vyhodnocovat a aktualizovat, pokud se přidá nový slovník. Vaše firma se může vyvíjet a možná budete potřebovat více vlastních modelů, abyste zvýšili pokrytí pro více domén. Tým Azure Speech také vydává nové základní modely, které jsou natrénované na více datech, jakmile budou k dispozici. Automatizace vám může pomoct udržet krok s těmito změnami. Další část tohoto článku obsahuje další podrobnosti o automatizaci předchozích kroků.

Nasazení tohoto scénáře

Informace o tom, jak pomocí skriptování zjednodušit a automatizovat celý proces vytváření datových sad pro trénování a testování, sestavování a vyhodnocování modelů a publikování nových modelů podle potřeby, najdete v tématu Custom-speech-STT na GitHubu.

Přispěvatelé

Tento článek spravuje Microsoft. Původně byla napsána následujícími přispěvateli.

Hlavní autor:

Další přispěvatelé:

Pokud chcete zobrazit neveřejné profily LinkedIn, přihlaste se na LinkedIn.

Další kroky