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 yang dijalankan spx synthesize --text "Sample text to synthesize" --audio output C:\batch_wav_output\wav_1.wav
untuk setiap rekaman dalam file .tsv
.
Beberapa hal yang perlu diperhatikan:
- Header kolom,
audio.output
dantext
, 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