Partager via


Exécuter des opérations de traitement par lots avec l’interface CLI Speech

Les opérations de traitement par lots sont des tâches courantes quand vous utilisez le service Speech. Dans cet article, vous allez apprendre à effectuer des lots de reconnaissance vocale (reconnaissance vocale), de synthèse vocale par lot avec l’interface CLI Speech. Plus précisément, vous apprenez à :

  • Exécuter une reconnaissance vocale par lots sur un répertoire de fichiers audio
  • Exécuter une synthèse vocale par lots en itérant au sein d’un fichier .tsv

Reconnaissance vocale par lots

Le service Speech est souvent utilisé pour effectuer une reconnaissance vocale à partir de fichiers audio. Dans cet exemple, vous allez apprendre à effectuer une itération sur un répertoire à l’aide de l’interface CLI Speech pour capturer la sortie de reconnaissance pour chaque .wav fichier. L’indicateur --files est utilisé pour pointer vers le répertoire où sont stockés les fichiers audio, et le caractère générique *.wav est utilisé pour indiquer à l’interface CLI Speech d’exécuter une reconnaissance sur chaque fichier portant l’extension .wav. La sortie de chaque fichier de reconnaissance est écrite sous la forme d’une valeur séparée par des tabulations dans speech_output.tsv.

Notes

L’argument --threads peut également être utilisé dans la section suivante pour les commandes spx synthesize, et les threads disponibles dépendent du processeur et du pourcentage de charge actuel.

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

Voici un exemple de la structure de fichiers de sortie.

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

Synthèse vocale par lots

Le moyen le plus simple d’exécuter une synthèse vocale par lots consiste à créer un fichier .tsv (valeurs séparées par des tabulations) et à utiliser la commande --foreach de l’interface CLI Speech. Vous pouvez créer un fichier .tsv avec votre éditeur de texte préféré. Pour les besoins de cet exemple, nous allons le nommer text_synthesis.tsv :

Important

Quand vous copiez le contenu de ce fichier texte, vérifiez que votre fichier contient une tabulation plutôt que des espaces entre l’emplacement du fichier et le texte. Parfois, lors de la copie du contenu de cet exemple, les tabulations sont converties en espaces, ce qui entraîne l’échec de la commande spx lors de son exécution.

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.

Ensuite, exécutez une commande pour pointer vers text_synthesis.tsv, effectuer une synthèse sur chaque champ text et écrire le résultat sur le chemin audio.output correspondant dans un fichier .wav.

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

Cette commande équivaut à exécuter spx synthesize --text "Sample text to synthesize" --audio output C:\batch_wav_output\wav_1.wav pour chaque enregistrement du fichier .tsv.

Points à prendre en compte :

  • Les en-têtes de colonne, audio.output et text, correspondent respectivement aux arguments de ligne de commande --audio output et --text. Les arguments de ligne de commande en plusieurs parties, comme --audio output, doivent être mis en forme dans le fichier sans espaces, ni tirets de début, ni points de séparation entre les chaînes, par exemple audio.output. Tous les autres arguments de ligne de commande existants peuvent être ajoutés au fichier en tant que colonnes supplémentaires à l’aide de ce modèle.
  • Lorsque le fichier est mis en forme de cette façon, aucun autre argument n’est requis pour être transmis à --foreach.
  • Veillez à séparer les valeurs du .tsv par une tabulation.

Toutefois, si votre fichier .tsv comporte des en-têtes de colonnes qui ne correspondent pas aux arguments de ligne de commande, comme dans l’exemple suivant :

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.

Vous pouvez remplacer ces noms de champs par les bons arguments selon la syntaxe suivante dans l’appel --foreach. Cette commande effectue le même appel qu’auparavant.

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

Étapes suivantes