python | 生成并播放.wav文件

功能介绍:
(1)读取本地的.mat文件
(2)将.mat文件转换为.wav文件输出
(3)播放.wav文件

说明:
需要运行时,只需将下列的程序的

UnprocessedSignal1 = loadmat('E:/研一/2021-05 研究生电赛/raspberry/实际数据-txt转mat/collect.mat')  # 导入.mat文件,字典格式
UnprocessedSig1 = np.transpose(UnprocessedSignal1['collect'])  # 找到需要的变量,将其存好

其中,loadmat路径替换为要读取的.mat文件的路径
UnprocessedSig1 = np.transpose(UnprocessedSignal1[‘collect’]) 中的[‘collect’]替换为变量名即可。
且这里的转置,要根据读取数据是行向量还是列向量加以取舍。

import wave
from scipy.io import loadmat #只import一个函数
import numpy as np
import scipy.signal as signal
from playsound import playsound


# 2021-07-09 成功啦,保存.wav文件并且播放

UnprocessedSignal1 = loadmat('E:/研一/2021-05 研究生电赛/raspberry/实际数据-txt转mat/collect.mat')  # 导入.mat文件,字典格式
UnprocessedSig1 = np.transpose(UnprocessedSignal1['collect'])  # 找到需要的变量,将其存好
UnprocessedSig1 = UnprocessedSig1[0, :]  # 取第一行

framerate = 40000#应该是采样率

wave_data = UnprocessedSig1 * 50000
wave_data = wave_data.astype(np.short)

f = wave.open('collect_final.wav', "wb")#不存在同名的问题,很好。
f.setnchannels(1)
f.setsampwidth(2)
f.setframerate(framerate)
f.writeframes(wave_data.tobytes())

f.close()
playsound('collect_final.wav')
  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值