Hasilkan file mp3 dari espeak

10

Saya ingin mengonversi file teks ke file mp3 menggunakan espeak. Apakah mungkin melakukan ini? Saya mencoba menggunakan espeak untuk membuat skrip shell sintesis lagu yang dapat mengubah teks menjadi lagu.

Anderson Green
sumber
1
Saya pikir halaman ini menjelaskan cara membuat file mp3 (setidaknya sebagian): npmjs.org/package/espeak
Anderson Green
Dan inilah penjelasan tentang bagaimana melakukan ini menggunakan skrip shell: eceppda.github.com/nerdterm/2011/11/23/ESPEAK.html
Anderson Green
Juga, dimungkinkan untuk melakukan pitch shift menggunakan program yang disebut rubberband.
Anderson Green

Jawaban:

15

Ada dua cara untuk melakukan ini; jika Anda hanya menginginkan wavfile, lihat contoh pertama, dan untuk mp3konversi lihat yang kedua.

1) Feed espeakfile teks Anda menggunakan -fopsi, kemudian gunakan --stdoutopsi dan arahkan aliran datanya ke file untuk membuat wavfile yang valid yang diputar dengan benar di pemutar audio apa pun.

espeak -f mytext --stdout > myaudio

Hasil dicek dengan fileperintah ( file myaudio):

myaudio: RIFF (little-endian) data, WAVE audio, Microsoft PCM, 16 bit, mono 22050 Hz

2) Jika Anda ingin konversi mp3, Anda harus menggunakan program untuk mengonversi file Anda (atau cukup simpan audacitydan ekspor sebagai mp3). Saya telah menggunakan ffmpeg(versi git), tetapi Anda dapat menggunakan program apa saja dan hanya mengubah opsi:

espeak -f myfile --stdout | ffmpeg -i - -ar 44100 -ac 2 -ab 192k -f mp3 final.mp3

Hasil diperiksa dengan file final.mp3:

final.mp3: Audio file with ID3 version 2.4.0, contains: MPEG ADTS, layer III, v1, 192 kbps, 44.1 kHz, Stereo
mivk
sumber
6

Saya benar-benar menulis naskah untuk mencapai ini ... dan akhirnya bekerja dengan cukup baik.

https://github.com/divVerent/ecantorix

Contoh: https://github.com/downloads/divVerent/ecantorix/sarastro.ogg

Rudolf Polzer
sumber
1
Saya tidak tahu apakah itu yang terbaik atau yang paling menakutkan yang saya dengar hari ini. Kerja bagus.
Oli
Ini bukan jawaban langsung untuk pertanyaan itu, tetapi itu sangat gila sehingga layak mendapat jawaban positif!
mivk
3

espeak sekarang memiliki opsi -w yang menghasilkan wav
(Masih perlu dikonversi ke mp3 sesudahnya.)

espeak -f foo.txt -w foo.wav
SamGoody
sumber
2

The --stdoutpilihan untuk eSpeak akan menceritakannya untuk menulis data audio ke stdout bukannya menempatkan melalui perangkat audio. Dari sana, Anda dapat mengirimkannya ke mis. Ffmpeg untuk konversi ke format yang tepat.

Ignacio Vazquez-Abrams
sumber
Bisakah Anda menunjukkan contoh-contoh ini yang Anda temukan?
Anderson Green
1
Saya belum menemukan; Saya hanya mengerti bagaimana program bekerja.
Ignacio Vazquez-Abrams
Pertanyaan ini mungkin relevan juga: stackoverflow.com/questions/2762164/how-to-make-computer-sing
Anderson Green