- 1、本文档共45页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第五章 Sunplus SPCE061A 语音基础知识
5.1 基础知识
5.1.1概述
音频:人耳可以感觉到的声音频率。20Hz ~ 20000Hz
语音和音乐是两类特殊的音频信号:语音是语言的载体,是对声音的抽象;音乐是符号化的声音。语音是由人类发音器官产生的、具有一定意义且能起到社会交际作用的声音。具有抽象表意性。频率通常在200Hz~4000Hz之间。
5.1.2语音处理技术
语音处理是建立在语言学和数字信号处理基础之上的综合学科,包括:语音分析、语音存储与回放、语音识别、语音合成。
1.语音分析
音频采样和量化。将模拟的(连续的)声音波形数字化(离散化)。
语音信号的时域分析。直接利用语音信号的时域波形进行分析。
语音信号的频域分析。对语音信号的频谱、功率谱等进行分析。
语音信号的线性预测分析。把语音信号用一个模型来表示,利用模型的参数来描述语音信号的波形和频谱特性。
1)音频采样和量化
音频采样原理
(2)采样频率
采样频率是指采样设备每秒钟对声音信号的采集次数。采样频率越高,声音的还原就越真实越自然。
(3)量化位数
量化位数是把模拟声音转换为数字信号的二进制位数。量化位数客观地反映了数字声音信号对输入声音信号描述的准确程度。
2.语音压缩编码
1)压缩编码的意义:高效存储、高速传输。
2)压缩编码分类:波形编码、参数编码、混合编码。
(1)波形编码
直接将波形信号转变为数字代码,尽量真实地还原波形,声音质量好,压缩比低,码率通常在20Kb/s以上,适用于高保真音乐及语音场合。
(2)参数编码
提取语音信号的特征参数进行编码,尽量保持语音信号的可懂性,而还原后的波形可能与原波形差别很大,压缩比很高,码率可达2.4kb/s以下,语音质量较差,自然度低,对环境噪声敏感。
(3)混合编码
将参数编码和波形编码技术结合起来,克服了两种编码的缺点。压缩比高,码率为4~16Kb/s。音质介于参数编码和波形编码之间。
(4)对于波形编码、参数编码和混合编码,凌阳都开发了相应的压缩算法。
属于波形编码的有A2000、A1600等
属于参数编码的有S240、S200等
属于混合编码的有S480、S530等
3.语音识别
1)语音识别基本原理
预处理,语音信号数字化。
特征提取,抽取反应语音本质的特征参数,形成特征矢量序列。
语音模型库,从一个或多个讲话者多次重复讲话中提取的语音参数模板。
模式匹配,把输入语音的特征参数与语音模型库进行比较分析,得到识别结果。
2)语音识别的类型
根据对说话人的依赖程度,分为:
(1)特定人语音识别(SD):只能辨认特定使用者的语音,训练-使用;
(2)非特定人语音识别(SI):可辨认任何人的语音,无须训练。
根据对说话方式的要求,分为:
(1)孤立词识别:每次识别的单词之间要有停顿;
(2)连续语音识别:使用者以正常语速说话。
4.语音合成
将以其他方式表示或存储的信息转换成语音。
最常见的语音合成技术是将文本转换为语音(TTS)。
5.2 函数库、凌阳音频函数库
5.2.1“库”的概念
把一组或多组函数的目标代码(Object Code)集合起来,形成一个文件(Library)。库便于对函数组织管理;有利于实现程序模块化;使程序简洁、可靠;有利于软件交流和重利用;保护核心代码。
5.2.2创建自己的函数库举例
1.第一步:组织代码
2.第二步:编译代码
分别编译每个代码文件(Ctrl+F7),会在工程的Debug文件夹下生成扩展名为“.obj”的目标文件。
3.第三步:新建函数库
IDE的Tools菜单下,选择“LibMaker”,在弹出对话框中选“New”,新建一个库文件并将此文件保存。例如,起名为MyLib.
4.第四步:向库中添加目标文件
点击Add按钮,在工程的Debug文件夹下找到要添加的目标文件(*.obj)
然后点击“Exit”按钮退出LibMaker即可。
5.2.3使用函数库举例
1.新建工程
2.选择Project菜单下的“Setting”项
3.选择Link栏,点击Library Modules右面的文件夹按钮。
4. 在工程所在文件夹中选择刚刚建立的MyLib.lib文件,确定。
现在,函数库已经添加到工程里了。编写的程序可以使用函数库中的函数。
5.在工程中新建程序文件main.c。
6.在main.c中编写main()代码,调用库中的函数。
7.按F7键对工程进行编译和连接,再按F8键下载程序。
8.确认“Toggle Watch”按钮处于按下状态,激活变量观察窗口。
9.在变量观察窗口中输入要观察的变量a和b,按F10单步执行程序,可以观察a和b变量的数值变化情况是否与预想结果相符。
5.2.4修改函数库
对于已有的函数库,可以对其进行添加函数集和删除函数集的
文档评论(0)