语音质量评估

语音质量评价方法-【音频质量专题】
python实现语音信号处理常用度量方法
声音的输入输出
python音频处理用到的操作

下面程序引用自python音频处理用到的操作
先说一下参数的意思:
nchannels:声道数
sampwidth:量化位数(byte)(采样宽度)
framerate:采样频率(帧速率)
nframes:采样点数 (帧数)
comptype,:唯一标识
compname:无损
采样点数占内存大小为2Byte(16bit),所以音频大小(MB)= 采样点数 * 2 / (1024 * 1024)
1、单通道

import wave
import matplotlib.pyplot as plt
import numpy as np
import os
 
filepath = "./" #添加路径
filename= os.listdir(filepath) #得到文件夹下的所有文件名称 
print(filename)
f = wave.open(filepath+filename[2],'rb')#读取第三个音频文件的信息
params = f.getparams()
nchannels, sampwidth, framerate, nframes = params[:4]
strData = f.readframes(nframes)#读取音频,字符串格式
waveData = np.fromstring(strData,dtype=np.int16)#将字符串转化为int
waveData = waveData*1.0/(max(abs(waveData)))#wave幅值归一化
# plot the wave
time = np.arange(0,nframes)*(1.0 / framerate)
plt.plot(time,waveData)
plt.xlabel("Time(s)")
plt.ylabel("Amplitude")
plt.title("Single channel wavedata")
plt.grid('on')#标尺,on:有,off:无。

//程序输出
在这里插入图片描述

2、多通道
这里通道数为3,主要借助np.reshape一下,其他同单通道处理完全一致,对应code:


# -*- coding: utf-8 -*-
"""
Created on Wed May  3 12:15:34 2017
 
@author: Nobleding
"""
 
import wave
import matplotlib.pyplot as plt
import numpy as np
import os
 
filepath = "./data/" #添加路径
filename= os.listdir(filepath) #得到文件夹下的所有文件名称 
f = wave.open(filepath+filename[0],'rb')
params = f.getparams()
nchannels, sampwidth, framerate, nframes = params[:4]
strData = f.readframes(nframes)#读取音频,字符串格式
waveData = np.fromstring(strData,dtype=np.int16)#将字符串转化为int
waveData = waveData*1.0/(max(abs(waveData)))#wave幅值归一化
waveData = np.reshape(waveData,[nframes,nchannels])
f.close()
# plot the wave
time = np.arange(0,nframes)*(1.0 / framerate)
plt.figure()
plt.subplot(5,1,1)
plt.plot(time,waveData[:,0])
plt.xlabel("Time(s)")
plt.ylabel("Amplitude")
plt.title("Ch-1 wavedata")
plt.grid('on')#标尺,on:有,off:无。
plt.subplot(5,1,3)
plt.plot(time,waveData[:,1])
plt.xlabel("Time(s)")
plt.ylabel("Amplitude")
plt.title("Ch-2 wavedata")
plt.grid('on')#标尺,on:有,off:无。
plt.subplot(5,1,5)
plt.plot(time,waveData[:,2])
plt.xlabel("Time(s)")
plt.ylabel("Amplitude")
plt.title("Ch-3 wavedata")
plt.grid('on')#标尺,on:有,off:无。
plt.show()

//程序输出
在这里插入图片描述
Python学习笔记–语音处理初步

下面程序引用自参考Python学习笔记–语音处理初步


import wave as we
import matplotlib.pyplot as plt
import numpy as np
from scipy.io import wavfile

filename = 'or105.wav'
WAVE = we.open(filename)
print('---------声音信息------------')
for item in enumerate(WAVE.getparams()):
    print(item)
a = WAVE.getparams().nframes    # 帧总数
f = WAVE.getparams().framerate  # 采样频率
sample_time = 1/f               # 采样点的时间间隔
time = a/f                      #声音信号的长度
sample_frequency, audio_sequence = wavfile.read(filename)
print(audio_sequence)           #声音信号每一帧的“大小”
x_seq = np.arange(0,time,sample_time)

plt.plot(x_seq,audio_sequence,'blue')
plt.xlabel("time (s)")
plt.show()

//输出
在这里插入图片描述
语音识别中特征提取MFCC、FBANK、语谱图特征提取
python 读取音频文件的详细信息
生成不同信噪比音频数据的原理及代码
音频信号分帧
音频帧概念详解

安装librosa
在这里插入图片描述

TIMIT 语料库
TIMIT 语料库2
常用音频数据库记录
包含世界各地的语音数据集Common Voice 数据集
在这里插入图片描述
音频特征提取——librosa工具包使用
音频特征提取——常用音频特征(包含语谱图,频谱图)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值