Delen via


Batchbewerkingen uitvoeren met de Speech CLI

Veelvoorkomende taken bij het gebruik van de Speech-service zijn batchbewerkingen. In dit artikel leert u hoe u batchgewijze spraak naar tekst (spraakherkenning), batchtekst naar spraak (spraaksynthese) kunt uitvoeren met de Speech CLI. U leert met name het volgende:

  • Batchgewijs spraakherkenning uitvoeren op een map met audiobestanden
  • Batchgewijze spraaksynthese uitvoeren door herhaaldelijk een .tsv-bestand te doorlopen

Batchgewijze spraak-naar-tekst (spraakherkenning)

De Spraak-service wordt vaak gebruikt om spraak in audiobestanden te onderscheiden. In dit voorbeeld leert u hoe u een map kunt herhalen met behulp van de Speech CLI om de herkenningsuitvoer voor elk .wav bestand vast te leggen. De vlag --files wordt gebruikt om te verwijzen naar de directory waarin de audiobestanden zijn opgeslagen. Het jokerteken *.wav wordt gebruikt om de Spraak-CLI te laten weten om herkenning uit te voeren op elk bestand met de extensie .wav. De uitvoer voor elk herkenningsbestand wordt geschreven als een door tabs gescheiden waarde in speech_output.tsv.

Notitie

Het argument --threads kan ook worden gebruikt in de volgende sectie voor spx synthesize-opdrachten; de beschikbare threads zijn afhankelijk van de CPU en het huidige belastingspercentage.

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

Hier volgt een voorbeeld van de structuur van het uitvoerbestand.

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

Batchgewijze tekst-naar-spraak (spraaksynthese)

De eenvoudigste manier om batchtekst naar spraak uit te voeren, is door een nieuw .tsv bestand (door tabs gescheiden waarden) te maken en de --foreach opdracht in de Speech CLI te gebruiken. U kunt een .tsv-bestand maken met behulp van uw favoriete teksteditor, bijvoorbeeld met de naam text_synthesis.tsv:

Belangrijk

Wanneer u de inhoud van dit tekstbestand kopieert, moet u ervoor zorgen dat het bestand tabs in plaats van spaties tussen de bestandslocatie en de tekst heeft. Wanneer u de inhoud uit dit voorbeeld kopieert, worden tabs soms naar spaties geconverteerd, waardoor de opdracht spx mislukt wanneer deze wordt uitgevoerd.

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.

Vervolgens voert u een opdracht uit om naar text_synthesis.tsv te verwijzen, voert u synthese uit op elk text-veld en schrijft u het resultaat naar het overeenkomstige audio.output-pad als een .wav-bestand.

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

Deze opdracht is het equivalent van het uitvoeren spx synthesize --text "Sample text to synthesize" --audio output C:\batch_wav_output\wav_1.wavvoor elke record in het .tsv bestand.

Enkele opmerkingen:

  • De kolomkoppen, audio.output en text, komen overeen met respectievelijk de opdrachtregelargumenten --audio output en --text. Opdrachtregelargumenten met meerdere delen, zoals --audio output, moeten in het bestand worden opgemaakt zonder spaties, zonder voorloopstreepjes en met punten die tekenreeksen scheiden, bijvoorbeeld audio.output. Alle andere bestaande opdrachtregelargumenten kunnen als meer kolommen aan het bestand worden toegevoegd met behulp van dit patroon.
  • Wanneer het bestand op deze manier is opgemaakt, hoeven er geen andere argumenten te worden doorgegeven aan --foreach.
  • Vergeet niet elke waarde in het .tsv te scheiden door een tab.

Ga echter als volgt te werk als u een .tsv-bestand hebt, zoals in het volgende voorbeeld, met kolomkoppen die niet overeenkomen met opdrachtregelargumenten:

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.

U kunt deze veldnamen vervangen door de juiste argumenten met behulp van de volgende syntaxis in de aanroep --foreach. Met deze opdracht wordt dezelfde aanroep uitgevoerd als voorheen.

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

Volgende stappen