PCM 转WAV。 2. 多通道pcm挑出其中

import wave
import os
import wave
import numpy as np

def gen_wav(filepath):
    

    wavelist=[]
    filenames=os.listdir(filepath)
    for filename in filenames:
        print(filename)
        name,category=os.path.splitext(filepath+filename)  #分解文件扩展名
    #     name,category=os.path.splitext(filename)  #分解文件扩展名
        if category=='.pcm':  #若文件为wav音频文件
            print(name+'.wav')
            with open(filepath+filename, 'rb') as pcmfile:
                pcmdata = pcmfile.read()
            output = wave.open(name+'.wav', 'wb')
            output.setparams((1, 2, 32000, 0, 'NONE', 'NONE'))
            output.writeframes(pcmdata)
            output.close()


filepath="/Users/anker/Documents/2_Speech_data/anker设备实际录音/3382/Stage1/Katar/键盘 1hour/"
gen_wav(filepath)
        

2. 

import scipy.io.wavfile as wav
import wave
def pcm2wav(pcm_file, wav_file, channels=6, bits=16, sample_rate=48000):
    pcmf = open(pcm_file, 'rb')
    pcmdata = pcmf.read()
    pcmf.close()

    if bits % 8 != 0:
        raise ValueError("bits % 8 must == 0. now bits:" + str(bits))

    wavfile = wave.open(wav_file, 'wb')
    wavfile.setnchannels(channels)
    wavfile.setsampwidth(bits // 8)
    wavfile.setframerate(sample_rate)
    wavfile.writeframes(pcmdata)
    wavfile.close
    
for i in range (1,4):
    pcm2wav(str(i) + ".pcm", str(i)+".wav")
    sr, signal = wav.read(str(i) + ".wav")
    wav.write(str(i)+"_mic.wav", sr, signal[:,0])
    wav.write(str(i)+"_ref.wav", sr, signal[:,4])

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值