返回顶部
首页 > 资讯 > 后端开发 > Python >Python3+将2声道音频,分拆成1声
  • 195
分享到

Python3+将2声道音频,分拆成1声

声道音频拆成 2023-01-31 07:01:02 195人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

现在是将双声道的音频分拆成单声道的。 同理可以将多声道的音频文件,转为1声道的音频文件。 注意新形成的音频文件的rate,需要与原音频的相同。 import os import wave import numpy as np import

现在是将双声道的音频分拆成单声道的。
同理可以将多声道的音频文件,转为1声道的音频文件。
注意新形成的音频文件的rate,需要与原音频的相同。
import os
import wave
import numpy as np
import pyaudio

file1 = os.path.join(os.path.abspath(os.path.dirname(os.path.dirname(__file__))), '音频文件/执迷不悟.wav')

f = wave.open(file1, "rb")

params = f.getparams()
nchannels, sampwidth, framerate, nframes = params[:4]
print(nchannels, sampwidth, framerate, nframes)  # 2 2 44100 11625348
# 读取波形数据
str_data = f.readframes(nframes)
f.close()

# 将波形数据转换为数组
wave_data = np.fromstring(str_data, dtype=np.int16)
wave_data.shape = -1, 2
wave_data = wave_data.T

wave_data_1 = wave_data[0]  # 声道1
wave_data_2 = wave_data[1]  # 声道2

w1 = wave_data_1.tostring()
w2 = wave_data_2.tostring()

# 实现录音
def record(re_frames, WAVE_OUTPUT_FILENAME):
    """
    :param re_frames: 是二进制的数据
    :param WAVE_OUTPUT_FILENAME: 输出的位置
    :return: 
    """
    p = pyaudio.PyAudio()
    CHANNELS = 1
    FORMAT = pyaudio.paint16
    RATE = framerate  # 这个要跟原音频文件的比特率相同
    print("开始录音")
    wf = wave.open(WAVE_OUTPUT_FILENAME, 'wb')
    wf.setnchannels(CHANNELS)
    wf.setsampwidth(p.get_sample_size(FORMAT))
    wf.setframerate(RATE)
    wf.writeframes(re_frames)
    wf.close()
    print("关闭录音")

record(w1, os.path.join(os.path.abspath(os.path.dirname(os.path.dirname(__file__))), '音频文件/执迷不悟1.wav'))
record(w1, os.path.join(os.path.abspath(os.path.dirname(os.path.dirname(__file__))), '音频文件/执迷不悟2.wav'))

主要为了之后对两个音频的抵消与叠加进行处理做准备。
拆分后的音频,文件大小也只有原先的一半。

--结束END--

本文标题: Python3+将2声道音频,分拆成1声

本文链接: https://lsjlt.com/news/191719.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Python3+将2声道音频,分拆成1声
    现在是将双声道的音频分拆成单声道的。 同理可以将多声道的音频文件,转为1声道的音频文件。 注意新形成的音频文件的rate,需要与原音频的相同。 import os import wave import numpy as np import ...
    99+
    2023-01-31
    声道 音频 拆成
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作