语音识别

声音的本质是震动,震动的本质是位移关于时间的函数,波形文件(.wav)中记录了不同采样时刻的位移。

通过傅里叶变换,可以将时间域的声音函数分解为一系列不同频率的正弦函数的叠加,通过频率谱线的特殊分布,建立音频内容和文本的对应关系,以此作为模型训练的基础。

案例:

import numpy as np
import numpy.fft as nf
import scipy.io.wavfile as wf
import matplotlib.pyplot as mpsample_rate, sigs = wf.read('../data/freq.wav')
print(sample_rate)
print(sigs.shape, sigs.dtype)
sigs = sigs / 2 ** 15
times = np.arange(len(sigs)) / sample_rate
freqs = nf.fftfreq(sigs.size, 1 / sample_rate)
ffts = nf.fft(sigs)
pows = np.abs(ffts)
mp.figure('Audio', facecolor='lightgray')
mp.subplot(121)
mp.title('Time Domain', fontsize=16)
mp.xlabel('Time', fontsize=12)
mp.ylabel('Signal', fontsize=12)
mp.tick_params(labelsize=10)
mp.grid(linestyle=':')
mp.plot(times, sigs, c='dodgerblue', label='Signal')
mp.legend()
mp.subplot(122)
mp.title('Frequency Domain', fontsize=16)
mp.xlabel('Frequency', fontsize=12)
mp.ylabel('Power', fontsize=12)
mp.tick_params(labelsize=10)
mp.grid(linestyle=':')
mp.plot(freqs[freqs >= 0], pows[freqs >= 0], c='orangered', label='Power')
mp.legend()
mp.tight_layout()
mp.show()

语音识别

梅尔频率倒谱系数(MFCC)通过与声音内容密切相关的13个特殊频率所对应的能量分布,可以使用梅尔频率倒谱系数矩阵作为语音识别的特征。基于隐形马尔科夫模型进行模式识别,找到测试样本最匹配的声音模型,从而识别语音内容。

梅尔频率倒谱系数相关API:

import scipy.io.wavfile as wf
import python_speech_features as sfsample_rate, sigs = wf.read('../data/freq.wav')
mfcc = sf.mfcc(sigs, sample_rate)

案例:

python -m pip install python_speech_features


隐马尔科夫模型相关API:

import hmmlearn.hmm as hl
# n_components: 用几个高斯分布函数拟合样本数据
# covariance_type: 相关矩阵的辅对角线进行相关性比较
# n_iter: 最大迭代上限
model = hl.GaussianHMM(n_components=4, covariance_type='diag', n_iter=1000)
model.fit(mfccs)
# 使用模型匹配测试mfcc矩阵的分值
score = model.score(test_mfccs)

案例:


声音合成

根据需求获取某个声音的模型频域数据,根据业务需要可以修改模型数据,逆向生成时域数据,完成声音的合成。

案例:

import json
import numpy as np
import scipy.io.wavfile as wf
with open('../data/12.json', 'r') as f:freqs = json.loads(f.read())
tones = [('G5', 1.5),('A5', 0.5),('G5', 1.5),('E5', 0.5),('D5', 0.5),('E5', 0.25),('D5', 0.25),('C5', 0.5),('A4', 0.5),('C5', 0.75)]
sample_rate = 44100
music = np.empty(shape=1)
for tone, duration in tones:times = np.linspace(0, duration, duration * sample_rate)sound = np.sin(2 * np.pi * freqs[tone] * times)music = np.append(music, sound)
music *= 2 ** 15
music = music.astype(np.int16)
wf.write('../data/music.wav', sample_rate, music)

机器学习 - 语音识别相关推荐

  1. 一篇文章让你窥探机器学习

    申明:本文转载自博客园-飞鸟各投林,觉得对于机器学习入门的概念归纳的很不错,转过来后根据自己的理解对部分内容做了删减补充调整,并作为自己对机器学习理解的回顾,特此记. 让我们从机器学习谈起 导读:在本 ...

  2. AI又被彩虹吹!​网易被预言为“下一个百度”?

    人工智能到底有多火? 近日国内首份<BAT人工智能领域人才发展报告>新鲜出炉,此次报告是针对国内人工智能领域的人才争夺情况进行了梳理.并把研究对象锁定在BAT三大巨头的身上. 来源:< ...

  3. BAT数据披露:缺人!110万AI人才缺口,两者矛盾,凉凉了!

    人工智能到底有多火? 近日国内首份<BAT人工智能领域人才发展报告>新鲜出炉,此次报告是针对国内人工智能领域的人才争夺情况进行了梳理.并把研究对象锁定在BAT三大巨头的身上. 来源:< ...

  4. BAT 数据披露:缺人!110万AI人才缺口,两者矛盾,凉凉了!

    人工智能到底有多火? 近日国内首份<BAT人工智能领域人才发展报告>新鲜出炉,此次报告是针对国内人工智能领域的人才争夺情况进行了梳理.并把研究对象锁定在BAT三大巨头的身上. 来源:< ...

  5. 揭秘2018图灵奖评选:Jeff Dean李开复和Lecun写信推荐Hinton

    李根 发自 凹非寺  量子位 报道 | 公众号 QbitAI 今天(3月27日),2018年图灵奖嘉奖正式揭晓:深度学习三巨头Yoshua Bengio.Geoffrey Hinton,Yann Le ...

  6. 2015伦敦深度学习峰会笔记:来自DeepMind、Clarifai等大神的分享

    2015伦敦深度学习峰会笔记:来自DeepMind.Clarifai等大神的分享 发表于 2015-10-20 06:35| 940次阅读| 来源 Medium| 3 条评论| 作者 Alessand ...

  7. BAT 数据披露:110万AI人才缺口,两者矛盾,凉凉了

    人工智能到底有多火? 近日国内首份<BAT人工智能领域人才发展报告>新鲜出炉,此次报告是针对国内人工智能领域的人才争夺情况进行了梳理.并把研究对象锁定在BAT三大巨头的身上. 来源:< ...

  8. 华为新品手机发布会全程回顾:AI加持下的十大创新

    北京时间10月16日晚上20:00,华为在德国慕尼黑举行Mate10系列手机新品发布会.发布会上,余承东正式宣布了华为Mate 10系列旗舰手机. Mate 10新机共有两款,分别是Mate 10和M ...

  9. 2018年60家新创公司排行榜

    来源:ittbank 2018年60家新创公司排行榜--Silicon 60 由<EE Times>每年评选全球值得关注的60家新创公司排行榜--'Silicon 60',今年迈向了第19 ...

最新文章

  1. Redis 分布式锁如何自动续期
  2. unity天空盒渐变_「是日美好事物」野兽派带来“金色眼泪”治愈新香,LV耳机印上蓝色天空...
  3. wampserver2.5安装 redis缓存,igbinary, phalcon框架
  4. 交换机和pc机用什么线连接_为什么要用顶角线,用发光顶角线的好处有哪些?...
  5. ajax的访问 WebService 的方法
  6. Pandas Index对象
  7. Django中ORM常用字段及字段参数
  8. win10下Java的JDK11下载与安装教程
  9. Windows 8激活产品密匙公布
  10. [语音处理] 声谱图(spectrogram)FBank(Mel_spectrogram)MFCC(Mel倒谱)到底用哪个作为NN输入?
  11. Navicat-在创建函数时提示Access violation at address ... in module ‘navicat.exe‘
  12. 常用的数据挖掘建模工具
  13. python计算英文字符数
  14. 逻辑函数的描述工具介绍
  15. 贝尔曼方程怎么解_贝尔曼方程
  16. 徐徐图之红楼之花自飘零水自流房东和房客彼得·潘与辛德瑞拉
  17. 如何让自己像打王者荣耀一样发了疯、拼了命、石乐志的学习?(强烈推荐)
  18. Python中List遍历的若干种方法
  19. 汉诺塔完整代码及分析
  20. 数据结构与算法之一(书籍篇)

热门文章

  1. Android 关于8.0的Service问题(Not allowed to start service Intent)
  2. OpenMV激光打靶
  3. C++ 左值与右值 左值引用与右值引用
  4. macOS下malware移除之anysearch劫持(Remove hijacking of anysearch)
  5. 国产十大工业机器人品牌有哪些?规模有多大,研发实力如何?
  6. HarmonyOS | 鸿蒙系统内置原生壁纸下载
  7. 微信分享实践和踩坑实践
  8. 石像鬼(Gargoyle)1.8.1 ar71xx SS + pdnsd 实现代理
  9. 新东方2021Q3净收入与盈利增长超预期 老牌教育巨头焕发生机?
  10. Appium-Multi Touch Perform(多点触控运转)