Share via


Konuşma CLI'sı ile toplu işlem çalıştırma

Konuşma hizmetini kullanırken sık kullanılan görevler toplu işlemlerdir. Bu makalede, Konuşma CLI'sı ile toplu konuşmayı metne dönüştürme (konuşma tanıma), toplu metin okuma (konuşma sentezi) yapmayı öğreneceksiniz. Özellikle şunların nasıl yapılacağını öğrenirsiniz:

  • Ses dosyalarının dizininde toplu konuşma tanımayı çalıştırma
  • Dosya .tsv üzerinde yineleme yaparak toplu konuşma sentezi çalıştırma

Toplu konuşmayı metne dönüştürme (konuşma tanıma)

Konuşma tanıma hizmeti genellikle ses dosyalarındaki konuşmayı tanımak için kullanılır. Bu örnekte, her .wav dosyanın tanıma çıkışını yakalamak için Konuşma CLI'sini kullanarak bir dizin üzerinde yineleme yapmayı öğreneceksiniz. Bayrağı--files, ses dosyalarının depolandığı dizine işaret etmek için kullanılır ve Konuşma CLI'sine uzantısına .wavsahip her dosyada tanımayı çalıştırmasını bildirmek için joker karakter *.wav kullanılır. Her tanıma dosyasının çıkışı, içinde speech_output.tsvsekmeyle ayrılmış değer olarak yazılır.

Not

--threads Bağımsız değişken, komutlar için spx synthesize sonraki bölümde de kullanılabilir ve kullanılabilir iş parçacıkları CPU'ya ve geçerli yük yüzdesine bağlıdır.

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

Çıktı dosyası yapısının bir örneği aşağıda verilmişti.

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

Toplu metin okuma (konuşma sentezi)

Toplu metni konuşmaya çalıştırmanın en kolay yolu, yeni .tsv bir (sekmeyle ayrılmış değer) dosyası oluşturmak ve Konuşma CLI'sında komutunu kullanmaktır --foreach . Sık kullandığınız metin düzenleyiciyi kullanarak bir .tsv dosya oluşturabilirsiniz. Örneğin, şu adı text_synthesis.tsvverelim:

Önemli

Bu metin dosyasının içeriğini kopyalarken, dosyanızın konumu ile metin arasında boşluklar olmayan bir sekme olduğundan emin olun. Bazen, bu örnekteki içerik kopyalanırken sekmeler boşluklara dönüştürülür ve bu da komutun spx çalıştırıldığında başarısız olmasına neden olur.

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.

Ardından, öğesini işaret text_synthesis.tsveden bir komut çalıştırırsınız, her text alanda sentez gerçekleştirir ve sonucu ilgili audio.output yola dosya .wav olarak yazarsınız.

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

Bu komut, dosyadaki her kayıt için çalıştırmanın spx synthesize --text "Sample text to synthesize" --audio output C:\batch_wav_output\wav_1.waveşdeğeridir.tsv.

Dikkate alınacak birkaç nokta:

  • ve sütun başlıkları, audio.outputtextsırasıyla komut satırı bağımsız değişkenlerine --audio output ve --textöğesine karşılık gelir. gibi --audio output çok parçalı komut satırı bağımsız değişkenleri dosyada boşluksuz, başta tire olmadan ve dizeleri ayıran noktalarla biçimlendirilmelidir. Örneğin, audio.output. Var olan diğer tüm komut satırı bağımsız değişkenleri, bu desen kullanılarak dosyaya daha fazla sütun olarak eklenebilir.
  • Dosya bu şekilde biçimlendirildiğinde, öğesine başka hiçbir bağımsız değişkenin geçirilmesi --foreachgerekmez.
  • içindeki her değeri .tsv bir sekmeyle ayırdığından emin olun.

Bununla birlikte, aşağıdaki örneğe benzer bir .tsv dosyanız varsa ve komut satırı bağımsız değişkenleriyle eşleşmeyen sütun başlıkları varsa:

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.

Çağrıda aşağıdaki söz dizimini --foreach kullanarak bu alan adlarını doğru bağımsız değişkenlerle geçersiz kılabilirsiniz. Bu komut, öncekiyle aynı çağrıyı yapar.

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

Sonraki adımlar