使用 python 进行音频处理
目录
使用 python 进行音频处理 1
实验目的及实验内容 1
实验目的: 1
实验内容: 1
原理分析: 1
实验环境 6
实验步骤及实验过程分析 8
解码结果: 56
实验结果总结 57
实验内容:
学习音频相关知识点,掌握 MFCC 特征提取步骤,使用给定的 chew.wav 音频文件进行特征提取。音频文件在实验群里下载。
部署 KALDI,简要叙述部署步骤运行 yes/no 项目实例,简要解析发音词典内容,画出初步的 WFST 图(按 PPT 里图的形式)。
调整并运行 TIMIT 项目,将命令行输出的过程与 run.sh 各部分进行对应,叙述顶层脚本run.sh 的各部分功能(不需要解析各训练过程的详细原理)。
实验环境
(本次实验所使用的器件、仪器设备等的情况)
处理器:Intel® Core™ i5-9300H CPU @ 2.40GHz 2.40 GHz
操作系统环境:
MFCC 特征提取:Windows 10 家庭中文版 x64 19042.867
Kaldi 的部署及测试:Ubuntu 18.04.5 LTS
编程语言:Python 3.8
其他环境:16 GB 运行内存(物理机),3GB 运行内存(VMWare 虚拟机)
IDE 及包管理器:JetBrains PyCharm 2020.1 x64,anaconda 3 for Windows(conda 4.9.0)
实验结果总结
(对实验结果进行分析,完成思考题目,总结实验的新的体会,并提出实验的改进意见)
librosa 是一个非常强大的 python 语音信号处理的第三方库,学会 librosa 后再也不用用python 去实现那些复杂的算法了,本文转载自http://www.biyezuopin.vip/onews.asp?id=16707只需要一句语句就能轻松实现。虽然如此,还是应该看看相关的文章,理解算法背后的原理。做 MFCC 提取时主要遇到的问题是 librosa 库安装时出现的问题,仅仅使用 pip install librosa 是没办法让程序正常运行的,因为 librosa 实际上还依赖了scipy、audioread、resampy、soundfile 等包,所以在运行前要检查完备再开始动手。
Kaldi 遇到的问题主要是部署的时候出现的,如果能够正常部署,后续应该不会出什么大问题。遇到问题要善于搜索,很多问题都是前人已经踩过的坑。TIMIT 可用的脚本函数库、数据语料语音的组织都有清晰的文件结构,函数脚本调用逻辑清晰,方便学习使用者学习和检索调用;其包含有函数处理流程结果的日志,便于查阅和分析。
虽然实验没有对算法理解做出要求,但多看看相关的博客以及文档、了解一下算法原理还是很有必要的。

# -*- coding: utf-8 -*-import librosa
import librosa.display
import matplotlib.pyplot as plt
import numpy as np
import sklearn
import osif __name__ == '__main__':save_dir = './imgs'if not os.path.exists(save_dir):os.mkdir(save_dir)file = './data/chew.wav'x, sr = librosa.load(file, sr=22050)# 波形图 (Waveform)librosa.display.waveplot(x, sr=sr)tar = save_dir + '/wave.png'plt.savefig(tar)print('wave picture has been saved as file: \'{}\''.format(tar))plt.show()plt.cla()# 声谱图(spectrogram)D = librosa.amplitude_to_db(np.abs(librosa.stft(x)), ref=np.max)librosa.display.specshow(D, y_axis='linear')plt.colorbar(format='%+2.0f dB')plt.title('Linear-frequency power spectrogram of aloe')tar = save_dir + '/spectrogram.png'plt.savefig(tar)print('spectrogram picture has been saved as file: \'{}\''.format(tar))plt.show()plt.cla()# 过零率 (Zero Crossing Rate)zero_crossings = librosa.zero_crossings(x, pad=False)print('ALL Zero Crossing Rate: ', sum(zero_crossings))limit = (len(x) - 200, len(x) - 100)zero_crossings = librosa.zero_crossings(x[limit[0]:limit[1]], pad=False)print('Zero Crossing Rate in range({0}, {1}): '.format(limit[0], limit[1]), sum(zero_crossings))# 频谱质心 (Spectral Centroid)spectral_centroids = librosa.feature.spectral_centroid(x, sr)[0]print('Spectral Centroid\'s shape: ', spectral_centroids.shape)# 计算时间变量frames = range(len(spectral_centroids))t = librosa.frames_to_time(frames)# 归一化频谱质心normalized = sklearn.preprocessing.minmax_scale(spectral_centroids, axis=0)librosa.display.waveplot(x, sr=sr, alpha=0.4)plt.plot(t, normalized, color='r')tar = save_dir + '/Spectral_Centroid.png'plt.savefig(tar)print('Spectral Centroid picture has been saved as file: \'{}\''.format(tar))plt.show()plt.cla()# 声谱衰减 (Spectral Roll-off)spectral_rolloff = librosa.feature.spectral_rolloff(x+0.01, sr)[0]librosa.display.waveplot(x, sr=sr, alpha=0.4)normalized = sklearn.preprocessing.minmax_scale(spectral_rolloff, axis=0)plt.plot(t, normalized, color='b')tar = save_dir + '/Spectral_Roll-off.png'plt.savefig(tar)print('Spectral Roll-off picture has been saved as file: \'{}\''.format(tar))plt.show()plt.cla()# 色度频率 (Chroma Frequencies)hop_length = 512chromagram = librosa.feature.chroma_stft(x, sr=sr, hop_length=hop_length)plt.figure(figsize=(15, 5))librosa.display.specshow(chromagram, x_axis='time', y_axis='chroma',hop_length=hop_length, cmap='coolwarm')tar = save_dir + '/Chroma_Frequencies.png'plt.savefig(tar)print('Chroma Frequencies picture has been saved as file: \'{}\''.format(tar))plt.show()plt.cla()# MFCC特征提取 ( Mel Frequency Cepstral Coefficents )mfccs = librosa.feature.mfcc(x, sr=sr)librosa.display.specshow(mfccs, sr=sr, x_axis='time')tar = save_dir + '/mfccs.png'plt.savefig(tar)print('mfcc feature picture has been saved as file: \'{}\''.format(tar))plt.show()plt.cla()





























基于Python实现的语音特征提取声音信号处理相关推荐

  1. 单片机学习:第一篇 基于Python的树莓派语音助手

    title: 单片机学习:第一篇 基于Python的树莓派语音助手 tags: 树莓派,python,语音助手,百度AIP 目录 一.pyaudio录音 二.语音识别 三.与图灵机器人对话 四.语音合 ...

  2. python发微信语音没声音怎么回事_苹果手机微信语音没声音怎么回事?

    苹果手机微信语音没声音怎么回事?有些朋友在苹果手机上面使用微信语音过程中,可能会遇到没有声音问题,那么苹果手机微信语音没声音怎么回事?具体原因主要分为软件问题和硬件问题,那么苹果手机微信语音没声音该怎 ...

  3. 基于python的智能语音助手下载_GitHub - tengqian/DuerOS-Python-Client: 基于DuerOS的个人的智能语音助手...

    DuerOS-Python-Client使用说明 文档参考 运行依赖 gstreamer1.0 gstreamer1.0-plugins-good gstreamer1.0-plugins-ugly ...

  4. python发微信语音没声音_Python文字转换语音,抠脚大汉秒变撒娇萌妹

    APP 也有文字转换为语音的功能,虽然听起来很别扭,但是基本能解决长辈们看不清文字或者眼睛疲劳,通过文字转换为语音来获取信息. 我们用 Python 能否实现文字转语音呢,可以的,百度有个语音接口,可 ...

  5. 基于python的智能语音助手下载_GitHub - shaocj/DuerOS-Python-Client: 基于DuerOS的个人的智能语音助手...

    DuerOS-Python-Client使用说明 文档参考 运行依赖 gstreamer1.0 gstreamer1.0-plugins-good gstreamer1.0-plugins-ugly ...

  6. 基于python的智能语音助手下载_GitHub - zqiang/DuerOS-Python-Client: 基于DuerOS的个人的智能语音助手...

    DuerOS-Python-Client使用说明 运行依赖 gstreamer1.0 gstreamer1.0-plugins-good gstreamer1.0-plugins-ugly pytho ...

  7. 基于python的智能语音助手下载_GitHub - qq53182347/DuerOS-Python-Client: 基于DuerOS的个人的智能语音助手...

    DuerOS-Python-Client使用说明 运行依赖 gstreamer1.0 gstreamer1.0-plugins-good gstreamer1.0-plugins-ugly pytho ...

  8. python 语音播放_基于Python编写的语音播放软件

    单位经常使用广播进行临时事项的通知(将文字转换为语音然后通过功放广播),但是市面上多数语音播放软件都是收费的,要么发音失真,要么不够稳定--经常出现莫名其妙的故障,容易给工作带来被动.学Python这 ...

  9. python发微信语音没声音怎么回事_我的微信发语音没声音怎么回事

    展开全部 1.检查权限. 检查手机里装的安全软件,是否禁止了微信的权限,有的人手机重e68a843231313335323631343130323136353331333365643639启了就又能有 ...

最新文章

  1. 宏基因组实战3. MEGAHIT组装拼接及quast评估
  2. C# 之String以及浅拷贝与深拷贝
  3. 《数据驱动安全:数据安全分析、可视化和仪表盘》一2.3 数据帧介绍
  4. afudos备份bios不动_AMI BIOS刷新程序AFUDOS操作说明及介绍-BIOS维修网站www.biosrepair.com...
  5. python画父子关系图_将有父子关系的一维数组转换成树形结构(多维)数据
  6. ssh登录服务器提示错误no hostkey alg
  7. js 值类型和引用类型
  8. Python 爬下的必胜客数据背后,藏着什么样的信息?
  9. qt 日历类 不可输入当前日期之后的日期_UI设计组件时间选择器,日历设计从未如此简单!...
  10. 微信测试拉黑的软件,如何检测微信里有没有人把你拉黑?教你一招!
  11. php 汉王云名片_汉王云名片识别(SM)组件开发详解
  12. CUDA加速计算的基础C/C++
  13. JS_画中画,video视频播放器
  14. L2-027. 名人堂与代金券,结构体排序
  15. 中国太阳能跟踪器行业市场供需与战略研究报告
  16. Anaconda创建新环境及在pycharm中的设置
  17. LTE无线连接过程--网络接入过程
  18. 含源码,用Python实现浪漫烟花
  19. 七剑战歌 - 川井宪次
  20. 发那科点焊机器人故障处理方法

热门文章

  1. scom2012 监控linux,System center 2012 R2 实战六、SCOM2012R2介绍及安装
  2. 使用SCOM 2012监控网络
  3. 第一次随笔之寒假作业一
  4. 倒计时 | Python网络爬虫与文本数据分析
  5. ABAP SALV实现弹出ALV选择
  6. mysql取消mvvc机制_MySQL之MVVC简介
  7. 尚无忧【已对接硬件】共享自习室,共享麻将馆,共享茶室,共享空间,共享台球室,共享健身房无人值thinkphp开发
  8. vue 播放 flv 视频
  9. 【Arduino】Arduino IDE使用教程-超详细
  10. 可视化神器Plotly玩转甘特图