是否有一个python库,允许我拼凑并从自定义波形列表中导出mp3文件?

时间:2017-04-07 13:50:07

标签: python audio

这是我的问题。我有大量不同语言的相同短语的波形文件,并且想编写一个python脚本,以便我可以选择短语和语言组合,脚本将构建并导出一个mp3文件,波形短语彼此相邻。例如,输出的文件会有一个短语'很高兴见到你',然后在2秒的暂停后用日语表示等效,然后是列表中的下一个用日语相当的项目。我想知道是否有一个我需要这样做的库,或者它是否可以用标准的python库编写。感谢任何可以提供帮助的人。

3 个答案:

答案 0 :(得分:0)

你可以尝试使用字典,y = {" hello":" hola"," etc"}当一个人被调用时你可以转换它到声音文件。例如,如果您在Mac上,则可以执行

from os import system
system('say '+ hello)

这只适用于Mac。

我希望这有帮助,但你没有提到你已经尝试过的东西,所以我不能再具体了。

答案 1 :(得分:0)

FFmpeg的 http://ffmpeg.org/

使用Python处理音频转换是一个很好的解决方案。

答案 2 :(得分:0)

有多种方法可以做到这一点。但是,我发现pydub最容易进行音频处理。特别适用于切片和连接。

您可以使用

进行安装

pip install pydub #for 2.x
pip3 install pydub#for 3.x

假设您的文件如下,

  

你的英文短语=“nice_to_meet_you_eng.mp3”
  你的日语短语=“nice_to_meet_you_jap.mp3”

您可以使用以下示例加入英语短语,然后是2秒延迟,然后是日语短语。

**此代码未经过测试**

from pydub import AudioSegment
from pydub.playback import play

#Create audio segments for audio files
nice_to_meet_you_eng = AudioSegment.from_mp3("nice_to_meet_you_eng.mp3")
nice_to_meet_you_jap = AudioSegment.from_mp3("nice_to_meet_you_jap.mp3")

#create two seconds of delay
two_second_of_silence = AudioSegment.silent(duration=2000) # duration in millisec

#concatenate segments as per requirement
myphrase =nice_to_meet_you_eng + two_second_of_silence + nice_to_meet_you_jap 

#Export combined phrase
myphrase.export("myphrase.mp3", format="mp3")

#play combined phrase
play(myphrase)