python 将多个wav语音文件合到一起

(本文已经同步到公众号)

    ******######******上期关于pcm语音格式文件合成文章:python把千万个语音文件合成一个

pcm格式的音频文件与wav格式还是有很大差别的。

wav格式:AudioSegment参数选定“wav”

pcm格式:参数有量化位数、采样速率、声道等

进入到 AudioSegment.from_file 函数可以看到:

如果数据格式为“raw”或者“pcm”,那么它的参数就必须包含这三个了。

AudioSegment 包 是可以直接安装的。

整个代码如下:

# python 音频文件处理
# 多个 wav 格式语音文件合成
from pydub import AudioSegment
import os
import shutil
import time

AudioSegment.converter = "D:\\Program Files (x86)\\ffmpeg-4.1-win64-static\\bin\\ffmpeg.exe" 
now_dir = os.getcwd()   #获取当前文件夹
new_dir = now_dir + '\\voicewav\\'  #wav语音文件所在文件夹
list_voice_dir = os.listdir('./voicewav')
list_voice_dir.sort(key=lambda x:int(x[:-4]))  #倒着数第四位'.'为分界线,按照‘.'左边的数字从小到大

# wav 格式语音文件合成
def voice_unit():
    n=0    
    #list_voice_dir_length = len(list_voice_dir)
    playlist = AudioSegment.empty()
    second_5_silence = AudioSegment.silent(duration=5000)  #产生一个持续时间为5s的无声AudioSegment对象
    for i in list_voice_dir:
        #sound = AudioSegment.from_wav(list_voice_dir[n])
        sound = AudioSegment.from_file(new_dir+list_voice_dir[n],format="wav") #  wav 
        #sound = AudioSegment.from_file(new_dir+list_voice_dir[n],sample_width=2,frame_rate=16000,channels=1)  #raw pcm
        playlist = playlist + sound + second_5_silence
        n+=1
    playlist.export(new_dir+'playlist.wav',format="wav") #wav
    #playlist.export(new_dir+'playlist.pcm')   #pcm
    print("语音合成完成,合成文件放在:",new_dir,"目录下")      
#对比文件顺序       
def testlist():
    for i in list_voice_dir:
        voicename = i
        print("对比文件顺序是否改变:",voicename)

def main():
    try:
        os.remove(new_dir+'playlist.pcm')
    except:
        print("")
    testlist()
    voice_unit()
if __name__ == "__main__":
    main()

白浪介绍:

(1)关于射频、微波、天线、无线通信、智能硬件、软件编程、渗透安全、人工智能、区块链,Java、Android、C/C++、python等综合能力的培养提升。

(2)各种学习资料、学习软件分享。

1.扫码关注公众号(Geekxiaobai)

                                           

2. 如在后台发送“Python高级编程”“Python Graphics”或者“2003”,即可免费获得电子书籍。仅供学习之用。

3. 扫码关注后,查看往期内容,会有更多资料惊喜等着你来拿哦  

  想要更多相关学习资料,可以在文章后面留言哦,后期将会根据留言需求免费分享学习资料哦。

========******=========******========******=========******==========

发布了42 篇原创文章 · 获赞 13 · 访问量 5万+

猜你喜欢

转载自blog.csdn.net/sunskyday/article/details/103190977