美文网首页
python 修改wav音频的采样率 位数 通道数

python 修改wav音频的采样率 位数 通道数

作者: 牛奶大泡芙 | 来源:发表于2020-05-12 14:53 被阅读0次

python中 我目前接触到的修改wav等音频文件的“采样率 位数 通道数”等参数的方法有两种
1、wave 读取文件

f = wave.open(audio_name, "wb")  
# 配置声道数、量化位数和取样频率
f.setnchannels(1)
f.setsampwidth(2)
f.setframerate(16000)
# 将wav_data转换为二进制数据写入文件
f.writeframes(data)
f.close()

上面的data可以是读取一段音频获得的数据,再写入其他文件中,就达到了按照时间顺序截取音频的目的,但是一般这种操作的“setnchannels”、“setsampwidth”、“setframerate”最好和原文件一致,否则可能会出现音频的失真,获取原文件参数的代码如下:

f = wave.open(r"./xx/xx", "rb")
params = f.getparams()

2、sox
sox可以作为命令行工具使用,也可以安装好了之后在python代码中调用
我在测试过程中发现sox设置参数可以和原音频不同,输出的新wav文件仍然可以成功播放
在修改之前可以先利用sox查看一下音频文件的基本信息,然后再决定修改的操作:

sox -V xxx.wav -n

从命令行中可以得到结果:

sox:      SoX v14.4.1
sox INFO formats: detected file format type `wav'

Input File     : 'ok1.wav'
Channels       : 1
Sample Rate    : 16000
Precision      : 16-bit
Duration       : 00:00:50.00 = 800000 samples ~ 3750 CDDA sectors
File Size      : 1.60M
Bit Rate       : 256k
Sample Encoding: 16-bit Signed Integer PCM
Endian Type    : little
Reverse Nibbles: no
Reverse Bits   : no


Output File    : '' (null)
Channels       : 1
Sample Rate    : 16000
Precision      : 16-bit
Duration       : 00:00:50.00 = 800000 samples ~ 3750 CDDA sectors

sox INFO sox: effects chain: input        16000Hz  1 channels
sox INFO sox: effects chain: output       16000Hz  1 channels

如果仍然需要修改的话,可以进行以下操作

import subprocess
# 复制一份wav文件保存audio_ok_name, 利用sox调整参数:通道-1 位-16 采样率-16k
subprocess.call(["sox {} -r 16000 -b 16 -c 1 {}".format(audio_name, audio_ok_name)], shell=True)

方法出自个人项目经历,如有失误,欢迎留言指正💗

相关文章

  • python 修改wav音频的采样率 位数 通道数

    python中 我目前接触到的修改wav等音频文件的“采样率 位数 通道数”等参数的方法有两种1、wave 读取文...

  • SOX 常用命令

    查看音频信息 修改频率、通道数、位深 wav转为raw数据 raw转为wav,此时需要指明raw文件的bit ra...

  • sox用法

    man soxrec -c1 -r16000 xxx.wav可以录制音频 c指的是声道数 r值得是采样率play ...

  • SDL实现PCM播放器

    sdl实现pcm播放主要包括以下几个步骤:打开音频设备-->设置音频参数(采样率、采样大小、通道数等)-->向声卡...

  • 音视频学习(五)

    音频编码 WAV编码是在PCM数据格式的前面加44个字节,分别用来存储PCM的采样率、声道数、数据格式等信息特点:...

  • 4. 【音频编解码实战】

    音频重采样 就是将音频三元组(采样率 采样大小 通道数)的值转成另外一组值 1. 应用场景: 1、从设备采集的音频...

  • 音频混音处理

    统一通道数和采样率 参考文章 详解如何使用代码进行音频合成[https://www.cnblogs.com/zty...

  • JAVA 组合音频播报

    以下示例为标准wav格式音频,其他格式的思路一样 1、思路 了解wav音频的数据格式 将多个wav数据组合成一段数...

  • 使用python_speech_features提取音频文件特征

    1. 读取wav文件 使用scipy.io.wavfile fs是wav文件的采样率,signal是wav文件的内...

  • 音频重采样

    定义: 将音频三元组(采样率、采样大小和通道数)的值转成另外一组值例如:将44100/16/2 转成48000/1...

网友评论

      本文标题:python 修改wav音频的采样率 位数 通道数

      本文链接:https://www.haomeiwen.com/subject/nzubnhtx.html