Share via


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.tsvpeka 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.wavför varje post i .tsv filen.

Några saker att notera:

  • Kolumnrubrikerna audio.output och text, 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.outputtill 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

Nästa steg