ฉันต้องการแปลงไฟล์ข้อความเป็นไฟล์ MP3 โดยใช้ espeak เป็นไปได้ที่จะทำเช่นนี้? ฉันพยายามใช้ espeak เพื่อสร้างเชลล์สคริปต์การสังเคราะห์เพลงที่สามารถแปลงข้อความเป็นเพลง
ฉันต้องการแปลงไฟล์ข้อความเป็นไฟล์ MP3 โดยใช้ espeak เป็นไปได้ที่จะทำเช่นนี้? ฉันพยายามใช้ espeak เพื่อสร้างเชลล์สคริปต์การสังเคราะห์เพลงที่สามารถแปลงข้อความเป็นเพลง
คำตอบ:
มีสองวิธีในการทำสิ่งนี้; หากคุณต้องการwav
ไฟล์ให้ดูตัวอย่างแรกและสำหรับการmp3
แปลงให้ดูไฟล์ที่สอง
1) ฟีดespeak
ไฟล์ข้อความของคุณโดยใช้-f
ตัวเลือกจากนั้นใช้--stdout
ตัวเลือกและเปลี่ยนเส้นทางสตรีมข้อมูลไปยังไฟล์เพื่อสร้างwav
ไฟล์ที่ถูกต้องซึ่งเล่นได้อย่างถูกต้องในเครื่องเล่นเพลง
espeak -f mytext --stdout > myaudio
ผลการตรวจสอบด้วยfile
คำสั่ง ( file myaudio
):
myaudio: RIFF (little-endian) data, WAVE audio, Microsoft PCM, 16 bit, mono 22050 Hz
2) ถ้าคุณต้องการการแปลง mp3 คุณจะต้องใช้โปรแกรมเพื่อแปลงไฟล์ของคุณ (หรือเพียงแค่บันทึกลงในaudacity
และส่งออกเป็น mp3) ฉันเคยใช้ffmpeg
(เวอร์ชัน git) แต่คุณสามารถใช้โปรแกรมใดก็ได้และเพียงเปลี่ยนตัวเลือก:
espeak -f myfile --stdout | ffmpeg -i - -ar 44100 -ac 2 -ab 192k -f mp3 final.mp3
ตรวจสอบผลลัพธ์ด้วย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
จริง ๆ แล้วฉันเขียนสคริปต์เพื่อให้ได้สิ่งนี้ ... และมันก็ทำงานได้ดีทีเดียว
https://github.com/divVerent/ecantorix
ตัวอย่าง: https://github.com/downloads/divVerent/ecantorix/sarastro.ogg
espeak ตอนนี้มีตัวเลือก -w ซึ่งส่งออกไป wav
(มันจะยังคงต้องถูกแปลงเป็น mp3 หลังจากนั้น)
espeak -f foo.txt -w foo.wav
--stdout
ตัวเลือกในการ eSpeak จะบอกให้เขียนข้อมูลเสียงเพื่อ stdout แทนการใส่มันผ่านอุปกรณ์เสียง จากนั้นคุณสามารถไพพ์ลงในเช่น ffmpeg สำหรับการแปลงเป็นรูปแบบที่เหมาะสม