Spouštění dávkových operací pomocí rozhraní příkazového řádku služby Speech

Běžné úlohy při používání služby Speech jsou dávkové operace. V tomto článku se naučíte provádět dávkovou řeč na text (rozpoznávání řeči), dávkový text na řeč (syntézu řeči) pomocí Rozhraní příkazového řádku služby Speech. Konkrétně se naučíte:

  • Spuštění dávkového rozpoznávání řeči v adresáři zvukových souborů
  • Spuštění dávkové syntézy řeči iterací přes .tsv soubor

Dávkové zpracování řeči na text (rozpoznávání řeči)

Služba Speech se často používá k rozpoznávání řeči ze zvukových souborů. V tomto příkladu se dozvíte, jak iterovat adresář pomocí rozhraní příkazového řádku služby Speech k zachycení výstupu rozpoznávání jednotlivých .wav souborů. Příznak --files slouží k nasměrování na adresář, kde jsou uložené zvukové soubory, a zástupný znak *.wav slouží k tomu, aby rozhraní příkazového řádku služby Speech spustilo rozpoznávání u každého souboru s příponou .wav. Výstup pro každý soubor rozpoznávání je zapsán jako hodnota oddělená tabulátorem v speech_output.tsv.

Poznámka:

Argument --threads lze také použít v další části pro spx synthesize příkazy a dostupná vlákna budou záviset na procesoru a aktuálním procentu zatížení.

spx recognize --files C:\your_wav_file_dir\*.wav --output file C:\output_dir\speech_output.tsv --threads 10

Tady je příklad struktury výstupních souborů.

audio.input.id	recognizer.session.started.sessionid	recognizer.recognized.result.text
sample_1	07baa2f8d9fd4fbcb9faea451ce05475	A sample wave file.
sample_2	8f9b378f6d0b42f99522f1173492f013	Sample text synthesized.

Dávkové převody textu na řeč (syntéza řeči)

Nejjednodušší způsob, jak spustit dávkový text na řeč, je vytvořit nový .tsv soubor (oddělený tabulátorem) a použít --foreach příkaz v rozhraní příkazového řádku služby Speech. Soubor můžete vytvořit pomocí oblíbeného .tsv textového editoru, například ho pojmenujme text_synthesis.tsv:

Důležité

Při kopírování obsahu tohoto textového souboru se ujistěte, že soubor obsahuje mezery mezi umístěním souboru a textem. Někdy se při kopírování obsahu z tohoto příkladu karty převedou na mezery, což způsobí spx selhání příkazu při spuštění.

audio.output	text
C:\batch_wav_output\wav_1.wav	Sample text to synthesize.
C:\batch_wav_output\wav_2.wav	Using the Speech CLI to run batch-synthesis.
C:\batch_wav_output\wav_3.wav	Some more text to test capabilities.

Dále spustíte příkaz odkaz na text_synthesis.tsv, provedete syntézu každého text pole a zapíšete výsledek do odpovídající audio.output cesty jako .wav soubor.

spx synthesize --foreach in @C:\your\path\to\text_synthesis.tsv

Tento příkaz je ekvivalentem spuštění spx synthesize --text "Sample text to synthesize" --audio output C:\batch_wav_output\wav_1.wavkaždého záznamu .tsv v souboru.

Pár věcí, které je potřeba si poznamenat:

  • Záhlaví sloupců a textodpovídají argumentům audio.output--audio output příkazového řádku a --textv uvedeném pořadí. Argumenty příkazového řádku s více částmi by --audio output měly být formátovány v souboru bez mezer, bez počátečních pomlček a tečk, například audio.output. Do souboru je možné přidat všechny další existující argumenty příkazového řádku, protože tento vzor používá více sloupců.
  • Pokud je soubor formátován tímto způsobem, není nutné předat --foreachžádné jiné argumenty .
  • Zajistěte, aby se jednotlivé hodnoty oddělily tabulátorem .tsv.

Pokud ale máte .tsv soubor podobný následujícímu příkladu s záhlavími sloupců, které neodpovídají argumentům příkazového řádku:

wav_path    str_text
C:\batch_wav_output\wav_1.wav	Sample text to synthesize.
C:\batch_wav_output\wav_2.wav	Using the Speech CLI to run batch-synthesis.
C:\batch_wav_output\wav_3.wav	Some more text to test capabilities.

Názvy polí můžete přepsat na správné argumenty pomocí následující syntaxe ve --foreach volání. Tento příkaz provede stejné volání jako předtím.

spx synthesize --foreach audio.output;text in @C:\your\path\to\text_synthesis.tsv

Další kroky