Condividi tramite


Eseguire operazioni batch con l'interfaccia della riga di comando di Voce

Le attività comuni quando si usa il servizio Voce sono operazioni batch. In questo articolo si apprenderà come eseguire il riconoscimento vocale in batch (riconoscimento vocale), il testo in batch per la sintesi vocale con l'interfaccia della riga di comando di Voce. In particolare, si apprenderà come:

  • Eseguire il riconoscimento vocale in batch in una directory di file audio
  • Eseguire la sintesi vocale in batch tramite l'iterazione su un file .tsv

Riconoscimento vocale in batch

Il servizio Voce viene spesso usato per il riconoscimento vocale in file audio. In questo esempio si apprenderà come scorrere una directory usando l'interfaccia della riga di comando di Voce per acquisire l'output di riconoscimento per ogni .wav file. Per puntare alla directory in cui sono archiviati i file audio, si usa il flag --files, mentre per indicare all'interfaccia della riga di comando di Voce di eseguire il riconoscimento su ogni file con estensione .wav, si usa il carattere jolly *.wav. L'output relativo a ogni file di riconoscimento viene scritto come valore separato da tabulazioni in speech_output.tsv.

Nota

L'argomento --threads può essere usato anche nella sezione successiva per i comandi spx synthesize e i thread disponibili dipendono dalla CPU e dalla percentuale di carico corrente.

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

Ecco un esempio della struttura di file di output.

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

Sintesi vocale in batch

Il modo più semplice per eseguire il riconoscimento vocale in batch consiste nel creare un nuovo .tsv file (con valori separati da tabulazioni) e usare il --foreach comando nell'interfaccia della riga di comando di Voce. È possibile creare un file .tsv usando l'editor di testo preferito. Per questo esempio verrà creato il file text_synthesis.tsv:

Importante

Quando si copia il contenuto di questo file di testo, assicurarsi che il percorso del file sia separato dal testo da un carattere di tabulazione e non da spazi. In alcuni casi, quando si copia il contenuto di questo esempio, le tabulazioni vengono convertite in spazi, impedendo la corretta esecuzione del comando spx.

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.

Eseguire quindi un comando per puntare a text_synthesis.tsv, eseguire la sintesi su ogni campo text e scrivere il risultato nel percorso audio.output corrispondente come file .wav.

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

Questo comando equivale a eseguire spx synthesize --text "Sample text to synthesize" --audio output C:\batch_wav_output\wav_1.wav per ogni record nel file .tsv.

Un paio di aspetti da considerare:

  • Le intestazioni di colonna audio.output e text corrispondono rispettivamente agli argomenti della riga di comando --audio output e --text. Gli argomenti della riga di comando in più parti, come --audio output, devono essere formattati nel file senza alcuno spazio, alcun trattino iniziale e alcun punto di separazione delle stringhe, ad esempio audio.output. Qualsiasi altro argomento della riga di comando esistente può essere aggiunto al file come più colonne usando questo modello.
  • Quando il file viene formattato in questo modo, non è necessario passare altri argomenti a --foreach.
  • Verificare di separare ogni valore nel file .tsv con una tabulazione.

Può tuttavia essere presente un file .tsv, come nell'esempio seguente, che include intestazioni di colonna non corrispondenti agli argomenti della riga di comando:

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.

In tal caso è possibile eseguire l'override di questi nomi di campo negli argomenti corretti usando la sintassi seguente nella chiamata a --foreach. Questo comando esegue la stessa chiamata di prima.

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

Passaggi successivi