Menjalankan operasi batch dengan CLI Ucapan

Tugas umum saat menggunakan layanan Ucapan, adalah operasi batch. Dalam artikel ini, Anda mempelajari cara melakukan ucapan batch ke teks (pengenalan ucapan), teks batch ke ucapan (sintesis ucapan) dengan Speech CLI. Secara khusus, Anda mempelajari cara:

  • Menjalankan pengenalan ucapan batch pada direktori file audio
  • Jalankan sintesis ucapan batch dengan melakukan iterasi melalui file .tsv

Ucapan batch ke teks (pengenalan ucapan)

Layanan Ucapan sering digunakan untuk mengenali ucapan dari file audio. Dalam contoh ini, Anda mempelajari cara melakukan iterasi melalui direktori menggunakan Speech CLI untuk mengambil output pengenalan untuk setiap .wav file. Bendera --files digunakan untuk mengarahkan pada direktori tempat file audio disimpan, dan wildcard *.wav digunakan untuk memberi tahu CLI Ucapan untuk menjalankan pengenalan pada setiap file dengan ekstensi .wav. Output untuk setiap file penghargaan ditulis sebagai nilai yang dipisahkan tab dalam speech_output.tsv.

Catatan

Argumen --threads juga dapat digunakan di bagian berikutnya untuk perintah spx synthesize, dan thread yang tersedia akan tergantung pada CPU dan persentase beban saat ini.

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

Berikut adalah contoh struktur file 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.

Teks batch ke ucapan (sintesis ucapan)

Cara term mudah untuk menjalankan teks batch ke ucapan adalah dengan membuat file (nilai yang dipisahkan tab) baru .tsv , dan menggunakan --foreach perintah di Speech CLI. Anda dapat membuat file .tsv menggunakan editor teks favorit Anda, misalnya, sebut saja text_synthesis.tsv:

Penting

Saat menyalin konten file teks ini, pastikan file Anda memiliki tab bukan spasi antara lokasi file dan teks. Terkadang, ketika menyalin konten dari contoh ini, tab dikonversi ke spasi yang menyebabkan perintah spx gagal saat dijalankan.

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.

Selanjutnya, Anda menjalankan perintah untuk menunjuk ke text_synthesis.tsv, melakukan sintesis pada setiap bidang text, dan menulis hasilnya ke jalur audio.output yang sesuai sebagai file .wav.

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

Perintah ini setara dengan menjalankan spx synthesize --text "Sample text to synthesize" --audio output C:\batch_wav_output\wav_1.wavuntuk setiap rekaman dalam file .tsv.

Beberapa hal yang perlu diperhatikan:

  • Header kolom, audio.output dan text, masing-masing terkait dengan argumen baris perintah --audio output dan --text. Argumen baris perintah multi-bagian seperti --audio output harus diformat dalam file tanpa spasi, tanpa garis putus-putus di depan, dan titik yang memisahkan untai (karakter), misalnya, audio.output. Argumen baris perintah lain yang ada dapat ditambahkan ke file sebagai lebih banyak kolom menggunakan pola ini.
  • Ketika file diformat dengan cara ini, tidak ada argumen lain yang diperlukan untuk diteruskan ke --foreach.
  • Pastikan untuk memisahkan setiap nilai dalam .tsv dengan tab.

Namun, jika Anda memiliki file .tsv seperti contoh berikut, dengan header kolomyang tidak cocok dengan argumen baris perintah:

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.

Anda dapat mengganti nama bidang ini ke argumen yang benar menggunakan sintaks berikut dalam panggilan --foreach. Perintah ini melakukan panggilan yang sama seperti sebelumnya.

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

Langkah berikutnya