Köra batchåtgärder med Speech CLI
Vanliga uppgifter när du använder Speech-tjänsten är batchåtgärder. I den här artikeln lär du dig att göra batchtal till text (taligenkänning), batchtext till tal (talsyntes) med Speech CLI. Mer specifikt lär du dig att:
- Köra batchtaligenkänning i en katalog med ljudfiler
- Köra batchtalsyntes genom att iterera över en
.tsv
fil
Batchtal till text (taligenkänning)
Speech-tjänsten används ofta för att identifiera tal från ljudfiler. I det här exemplet lär du dig att iterera över en katalog med hjälp av Speech CLI för att samla in igenkänningsutdata för varje .wav
fil. Flaggan --files
används för att peka på katalogen där ljudfiler lagras och jokertecknet *.wav
används för att tala om för Speech CLI att köra igenkänning på varje fil med tillägget .wav
. Utdata för varje igenkänningsfil skrivs som ett flikavgränsat värde i speech_output.tsv
.
Kommentar
Argumentet --threads
kan också användas i nästa avsnitt för spx synthesize
kommandon, och de tillgängliga trådarna beror på processorn och dess aktuella belastningsprocent.
spx recognize --files C:\your_wav_file_dir\*.wav --output file C:\output_dir\speech_output.tsv --threads 10
Här är ett exempel på utdatafilstrukturen.
audio.input.id recognizer.session.started.sessionid recognizer.recognized.result.text
sample_1 07baa2f8d9fd4fbcb9faea451ce05475 A sample wave file.
sample_2 8f9b378f6d0b42f99522f1173492f013 Sample text synthesized.
Batchtext till tal (talsyntes)
Det enklaste sättet att köra batchtext till tal är att skapa en ny .tsv
fil (tab-separated-value) och använda --foreach
kommandot i Speech CLI. Du kan skapa en .tsv
fil med hjälp av din favorittextredigerare. I det här exemplet ska vi kalla den text_synthesis.tsv
:
Viktigt!
När du kopierar innehållet i textfilen kontrollerar du att filen har en flik , inte blanksteg mellan filplatsen och texten. När du kopierar innehållet från det här exemplet konverteras flikar ibland till blanksteg som gör spx
att kommandot misslyckas när det körs.
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ärefter kör du ett kommando för att text_synthesis.tsv
peka på , utföra syntes på varje text
fält och skriva resultatet till motsvarande audio.output
sökväg som en .wav
fil.
spx synthesize --foreach in @C:\your\path\to\text_synthesis.tsv
Det här kommandot motsvarar körningen spx synthesize --text "Sample text to synthesize" --audio output C:\batch_wav_output\wav_1.wav
för varje post i .tsv
filen.
Några saker att notera:
- Kolumnrubrikerna
audio.output
ochtext
, motsvarar kommandoradsargumenten--audio output
respektive--text
. Kommandoradsargument i flera delar som--audio output
ska formateras i filen utan blanksteg, inga inledande bindestreck och punkter som avgränsar strängar,audio.output
till exempel . Andra befintliga kommandoradsargument kan läggas till i filen som fler kolumner med det här mönstret. - När filen formateras på det här sättet krävs inga andra argument för att skickas till
--foreach
. - Se till att separera varje värde i
.tsv
med en flik.
Men om du har en .tsv
fil som i följande exempel, med kolumnrubriker som inte matchar kommandoradsargument:
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.
Du kan åsidosätta dessa fältnamn till rätt argument med hjälp av följande syntax i anropet --foreach
. Det här kommandot gör samma anrop som tidigare.
spx synthesize --foreach audio.output;text in @C:\your\path\to\text_synthesis.tsv