使用Python合并多个wav音频

您所在的位置:网站首页 Python怎么播放wav文件 使用Python合并多个wav音频

使用Python合并多个wav音频

2023-09-16 15:19| 来源: 网络整理| 查看: 265

文章目录 1. 合并两个文件2. 合并一个文件夹下多个文件3. 合并多个文件夹下指定数量的文件4. wave 模块小结 和拓展 项目需要将多个相关的wav文件进行合并,尝试不借助工具,使用Python代码来实现。

1. 合并两个文件 import wave infiles = ["sound_1.wav", "sound_2.wav"] outfile = "sounds.wav" data= [] for infile in infiles: w = wave.open(infile, 'rb') data.append( [w.getparams(), w.readframes(w.getnframes())] ) w.close() output = wave.open(outfile, 'wb') output.setparams(data[0][0]) output.writeframes(data[0][1]) output.writeframes(data[1][1]) output.close() 2. 合并一个文件夹下多个文件 3. 合并多个文件夹下指定数量的文件

这两种可以去查看 jupyter notebook文件 0817_join_wav

4. wave 模块小结 和拓展

wave 模块提供了一个处理 WAV 声音格式的便利接口。它不支持压缩/解压,但是支持单声道/立体声。

用法:wave.open(file, mode=None), mode为

rb:生成 wav_read 对象wb:生成 wav_write 对象 注意不支持同时读写。

注:关于 r、w、rb、wb r和w是普通读和写文件(简单理解为人工编写的文件); rb和wb是读写二进制文件(简单理解为可以操作图片等非手工编写的文件)

更多用法可以查看:Python 音频处理:wave

拓展: wave 是Python的标准模块,Python 处理音频数据等常见模块有两个:

librosa:擅长音频信号处理,内部用 numpy 存储数据,读写文件依赖 soundfile 模块(不支持mp3)pydub :底层基于 ffmpeg 读写文件,代码简洁,支持切割、格式转换、音量、ID3等常用功能,门槛低。(ffmpeg 是一个极其强大的开源视频处理软件)

使用建议:日常用 pydub 足够应付,更强大的信号处理则需要 librosa,但有一定数学门槛,需要了解信号处理原理,掌握傅立叶变换等基本算法。

具体的使用方法总结这里不再赘述,可以查看:使用 Python 做音频处理·总章

参考:

How-to-join-two-wav-files-using-pythonPython处理音频文件的实用姿势


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3