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.wav
každého záznamu .tsv
v souboru.
Pár věcí, které je potřeba si poznamenat:
- Záhlaví sloupců a
text
odpovídají argumentůmaudio.output
--audio output
příkazového řádku a--text
v 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říkladaudio.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