2013-10-30 2 views
2

나는 ffmpeg을 사용하여 우분투 11.04의 텍스트 파일에서 .mp3 파일을 출력하고 싶습니다. 제발, 어떻게해야합니까? 출력 할 수있는 가장 좋은 파일은 .wav입니다. 나는 그것을 파이썬 파일에서 사용할 수있게하려고한다. .WAV에 대한우분투 11.04에서 ffmpeg를 사용하여 텍스트 파일을 오디오 (mp3)로 변환하려면 어떻게해야합니까?

내 출력 방법은 eSpeak를 -s (155) -a (200) -f details.txt -w details.wav

+0

정확히 무엇이 문제입니까? ffmpeg에서'details.wav' 파일을 mp3 파일로 변환 하시겠습니까? 아니면 ffmpeg에서 텍스트 파일의 텍스트를 읽고 mp3 출력을 만드시겠습니까? 둘 다 가능합니다. – LordNeckbeard

+0

@LordNeckbeard, ** - w **는 ** details.wav **로 지정된 .wav를 출력합니다. 필자가 보여준 결과는 .wav로 출력 할 수 있음을 사람들에게 알리는 것입니다. 내가 가장 가까운 espeak [link] (http://askubuntu.com/questions/178736/generate-mp3-file-from-espeak)를 mp3 형식으로 출력해야합니다. ** espeak -f myfile - stdout | ffmpeg -i - -ar 44100 -ac 2 -ab 192k -f mp3 final.mp3 ** 시도 할 때 많은 오류가 발생합니다. ** 주요 작업은 Ubuntu **에서 espeak에서 mp3 파일을 출력 할 수 있기를 원합니다. 감사. – iChux

+0

ffmpeg 명령을 표시하고 콘솔 출력을 완료해야합니다 (질문에 추가 함). 왜 작동하지 않는지 알고 싶다면. – LordNeckbeard

답변

2

글쎄, 난 주위에 방법을 찾았습니다. 아래 그림과 같이 파이썬 스크립트로 포장했습니다.

from subprocess import Popen 
from os import remove 


def tts(text_file, wav_file, mp3_file): 
    Popen(["espeak", "-v", "en-uk", "-f", text_file, "-w", wav_file]).communicate() 
    Popen(["lame", "--ta", "nwaomachux", "--tt", "Latest Update", wav_file, mp3_file]).communicate() 
    remove(wav_file) 
    remove(text_file) 


if __name__ == '__main__': 
    wav_ = '/home/nwaomachux/Dropbox/news_update.wav' 
    mp3_ = '/home/nwaomachux/Dropbox/news_update.mp3' 
    txt_ = '/home/nwaomachux/Dropbox/news_upd.txt' 

    tts(txt_, wav_, mp3_) 

제발 제안과 수정 사항을 알려드립니다. 여기서 내가 달성 할 수 있었던 것은 .mp3 형식으로 출력하는 것입니다. 이전에 원했던 ffmpeg을 거치지 않아도됩니다.

관련 문제