欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    第八讲语音处理应用(一)总结ppt课件.ppt

    • 资源ID:1359565       资源大小:4.02MB        全文页数:81页
    • 资源格式: PPT        下载积分:16金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要16金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    第八讲语音处理应用(一)总结ppt课件.ppt

    SPCE061A 语音处理应用,第八讲 语音处理应用(一),一、语音基础知识,音频概述语音的特点音频的采样和量化语音压缩编码语音识别语音合成SPCE061A用于语音处理,1、音频概述,音频:人耳可以感觉到的声音频率 20Hz 20000Hz语音和音乐是两类特殊的音频信号语音是语言的载体,是对声音的抽象音乐是符号化的声音,2、语音的特点,语音是由人类发音器官产生的、具有一定意义且能起到社会交际作用的声音。具有抽象表意性频率通常在200Hz4000Hz之间,3、语音处理技术,语音处理是建立在语言学和数字信号处理基础之上的综合学科语音分析语音存储与回放语音识别语音合成,(1)、语音分析,音频采样和量化将模拟的(连续的)声音波形数字化(离散化)语音信号的时域分析直接利用语音信号的时域波形进行分析语音信号的频域分析对语音信号的频谱、功率谱等进行分析语音信号的线性预测分析把语音信号用一个模型来表示,利用模型的参数来描述语音信号的波形和频谱特性,3、语音处理技术,(2)、音频采样和量化,音频采样原理,采样频率采样频率是指采样设备每秒钟对声音信号的采集次数。采样频率越高,声音的还原就越真实越自然。量化位数量化位数是把模拟声音转换为数字信号的二进制位数。量化位数客观地反映了数字声音信号对输入声音信号描述的准确程度。,(2)、音频采样和量化,(3)、语音压缩编码,压缩编码的意义高效存储高速传输压缩编码分类波形编码参数编码混合编码,波形编码直接将波形信号转变为数字代码,尽量真实地还原波形声音质量好压缩比低,码率通常在20Kb/s以上适用于高保真音乐及语音场合,(3)、语音压缩编码,参数编码提取语音信号的特征参数进行编码,尽量保持语音信号的可懂性,而还原后的波形可能与原波形差别很大。压缩比很高,码率可达2.4kb/s以下。语音质量较差,自然度低对环境噪声敏感,(3)、语音压缩编码,混合编码将参数编码和波形编码技术结合起来,克服了两种编码的缺点。压缩比高,码率为416Kb/s音质介于参数编码和波形编码之间,(3)、语音压缩编码,(4)、凌阳语音压缩算法,对于波形编码、参数编码和混合编码,凌阳都开发了相应的压缩算法。属于波形编码的有A2000、A1600等属于参数编码的有S240、S200等属于混合编码的有S480、S530等,(5)、语音识别技术,语音识别基本原理预处理,语音信号数字化。特征提取,抽取反应语音本质的特征参数,形成特征矢量序列。语音模型库,从一个或多个讲话者多次重复讲话中提取的语音参数模板。模式匹配,把输入语音的特征参数与语音模型库进行比较分析,得到识别结果,语音识别的类型,根据对说话人的依赖程度,分为:特定人语音识别(SD)只能辨认特定使用者的语音,训练-使用非特定人语音识别(SI)可辨认任何人的语音,无须训练根据对说话方式的要求,分为:孤立词识别每次识别的单词之间要有停顿连续语音识别使用者以正常语速说话,即可识别其中的单词,(5)、语音识别技术,(6)、语音合成技术,将以其他方式表示或存储的信息转换成语音。最常见的语音合成技术是将文本转换为语音(TTS)。,4、SPCE061A用于语音处理,SPCE061A单片机的性能适合数字语音处理10位ADC和10位DAC内置MIC放大器和自动增益功能2个16位定时/计数器CPU时钟最高达49MHz2K Word SRAM空间16位乘法器和内积运算,完善的语音处理函数库支持语音播放语音录制Midi播放语音识别,4、SPCE061A用于语音处理,SPCE061A 语音处理应用,二、函数库、凌阳音频函数库,二、函数库、凌阳音频函数库,“库”的概念创建自己的函数库使用函数库修改函数库凌阳音频函数库小结和注意事项,1、“库”的概念,把一组或多组函数的目标代码(Object Code)集合起来,形成一个文件(Library),1、“库”的概念,函数库的优点便于对函数组织管理提高内聚,降低耦合有利于软件交流和重利用保护代码,函数库的组织结构,1、“库”的概念,2、创建自己的函数库,第一步:组织代码,2、创建自己的函数库,第二步:编译代码分别编译每个代码文件(Ctrl+F7),会在工程的Debug文件夹下生成扩展名为“.obj”的目标文件。,在弹出对话框中选“New”,新建一个库文件。,IDE的Tools菜单下,选择“LibMaker”,2、创建自己的函数库,第三步:新建函数库,2、创建自己的函数库,第四步:向库中添加目标文件点击Add按钮,在工程的Debug文件夹下找到要添加的目标文件(*.obj),2、创建自己的函数库,此时,函数库已经创建完成了。点击“Exit”按钮退出LibMaker即可。,3、使用函数库,新建工程选择Project菜单下的“Setting”项,3、使用函数库,选择Link栏,点击Library Modules右面的文件夹按钮。 在工程所在文件夹中选择刚刚建立的MyLib.lib文件,确定。,3、使用函数库,现在,函数库已经添加到工程里了。编写的程序可以使用函数库中的函数。为测试函数库的功能,在工程中新建程序文件main.c。,3、使用函数库,在main.c中编写main()代码,调用库中的函数。,3、使用函数库,按F7键对工程进行编译和连接,再按F8键下载程序。确认“Toggle Watch”按钮处于按下状态,激活变量观察窗口。,3、使用函数库,在变量观察窗口中输入要观察的变量a和b,按F10单步执行程序,可以观察a和b变量的数值变化情况是否与预想结果相符。,4、修改函数库,对于已有的函数库,可以对其进行添加函数集和删除函数集的操作。打开“LibMaker”,点击“Open”按钮,选择一个函数库。,4、修改函数库,注意,对函数库的修改操作是不可恢复的,在修改之前一定要对函数库进行备份。,要从现有函数库中删除一个函数集,选中该函数集,点击“Remove”键即可。,4、修改函数库,要在库中添加函数集,可以点击Add按钮,选择所需的目标文件(Obj)即可。,4、凌阳音频函数库,Sacmv26e.lib函数库包括语音录制、播放,以及Midi播放函数集。A2000:播放A2000格式语音资源S480:播放S480格式语音资源S240:播放S240格式语音资源DVR:语音录制与播放MS01:Midi播放,4、凌阳音频函数库,A2000格式16Kbit/s 24Kbit/s,适用于音乐或高质语音播放。SPCE061A内置Flash空间最多约可存储24秒A2000语音。S480格式4.8Kbit/s 7.2Kbit/s,适用于一般语音播放。SPCE061A内置Flash最多约可存储80秒S480语音。S240格式2.4Kbit/s,适用于低品质语音播放,SPCE061A内置Flash约可存储160秒S240语音。,4、凌阳音频函数库,DVR - 语音录放采用A2000压缩算法进行语音录制,码率为16Kbit/s,最多约可录制20秒语音。MS01 - Midi播放最大同时发音数为6路,其中有2路为鼓点音。,5、小结和注意事项,函数库是由一组或多组函数集组成的文件。函数库是二进制文件,程序代码是不可见的。在使用函数库时,只有被使用的函数集才会真正与工程连接,而其他函数集不会占用硬件资源。凌阳音频函数库提供了为语音录放提供了一条便捷的途径。,SPCE061A 语音处理应用,三、语音播放(自动播放),三、语音播放,语音录放流程 用SPCE061A播放语音 语音播放程序示例 用户接口函数 创建一个语音播放程序 小结和注意事项 疑难解答,(1)、语音录制存储流程,语音采样在定时中断的控制下,以一定的速率(8KHz)进行AD转换压缩编码将采集到的数据以某种算法压缩编码存储将编码后的数据保存到存储介质中,1、语音录放流程,(2)、语音播放流程,数据提取语音数据送入解压缩队列数据解码解压缩数据并送入输出队列转换为模拟信号在定时中断的控制下进行数模转换转换为声音模拟信号经滤波、放大,通过扬声器输出,1、语音录放流程,2、用SPCE061A播放语音,3、语音播放程序示例,4、用户接口函数,在hardware.asm中定义的用户API,用户可以根据需要修改F_SP_SACM_A2000_Init_F_SP_InitQueueF_SP_ReadQueueF_SP_WriteQueueF_SP_RampUpDAC1 ,5、创建一个语音播放程序,第 1 步:新建工程,5、创建一个语音播放程序,第 2 步:复制语音播放需要的文件到工程所在的文件夹 语音播放支持文件 ,在“IDE安装目录 - Example - 61_Exa - Record”文件夹下可以找到 sacmv26e.lib hardware.inc hardware.asm A2000格式的语音资源,在“IDE安装目录 - Example - VoiceExa - ex1_A2000 - Voice”文件夹下可以找到 这里选择了d1.24k和ww.24k两个文件,5、创建一个语音播放程序,第 3 步:把刚刚复制的支持文件和语音资源添加到工程中。 在Project菜单项,选择Add to Project - Files 找到工程所在的文件夹,选择hardware.asm、hardware.inc两个文件(按住Ctrl键点选),确定。 IDE的Project菜单项,Add to Project - Resource 选择两个语音文件d1.24k和ww.24k,确定。,5、创建一个语音播放程序,第 4 步:把Sacmv26e.lib语音函数库添加到工程中。 选择Project - Setting,在左半部分的目录树中点选根目录。 选择Link栏,点击Library Modules右面的文件夹按钮。 在工程所在文件夹中选择sacmv26e.lib文件,确定。,5、创建一个语音播放程序,第 5 步:编写语音播放函数。 在IDE的File菜单项下选择New,在弹出对话框的左半部分选择SP IDE C File。 在右半部分的File文本框中输入一个文件名,这里使用main.c,然后点击OK按钮。 在main.c中编写一个语音播放函数PlaySnd(),5、创建一个语音播放程序,第 6 步:编写中断服务函数 在工程中新建一个asm文件,可以取名为ISR.asm。 在ISR.asm中编写FIQ中断服务程序。,5、创建一个语音播放程序,第 7 步:编写主函数。 在IDE中打开main.c文件,编写main()函数。,5、创建一个语音播放程序,第 8 步:添加语音资源索引表 在IDE的Build菜单下选择Build(或直接按F7键),对工程进行编译和连接。此时会提示 “ Error L0080: The external symbol “T_SACM_A2000_SpeechTable” has not a public definition.”错误信息。 在工程中打开Resource.asm文件,在文件结尾处加入语音资源索引表。,5、创建一个语音播放程序,第 9 步:下载试听 按F7键对工程重新编译连接,途中可能会出现对话框提示Resource.asm文件被更改,选择“Yes”即可。连接好硬件(下载线、电源、扬声器等),在IDE的工具栏中点选绿色的“Use ICE”按钮。 点击红色叹号形的“Execute Program”按钮,下载并运行程序,就可以听到从SPCE061A播放出的声音了。,6、小结和注意事项,语音播放需要的支持文件: Sacmv26e.lib, Hardware.asm, Hardware.inc将支持文件加入工程中Hardware.asm加入到工程的Source FilesHardware.inc加入到工程的Head FilesSacmv26e.lib由Project - Setting - Link加入语音资源加入工程中Project - Add to Project - Resource在Resource.asm里添加语音资源索引表选择Use ICE模式,将程序下载到芯片中,小结和注意事项,如果播放S480格式的语音资源,只需将上述程序中所有的“A2000”改成“S480”即可。,7、疑难解答,SACM_A2000_Initial(1);中的参数1是什么意思? 播放初始化,参数值为1代表“自动播放”模式,0代表“手动播放”模式,“手动播放”将在下一节介绍。SACM_A2000_Play(SndIndex, DAC_Channel, 3);第三个参数3是做什么用的? 声音淡入和淡出设置。0-无淡入淡出;1-仅淡入;2-仅淡出;3-淡入淡出如何制作自己的语音资源? 凌阳提供了语音压缩工具,可以把.wav格式的声音文件压缩成A2000或S480格式。该工具的使用方法将在后面的课程中介绍。,SPCE061A 语音处理应用,三、语音播放(手动播放),三、语音播放(手动播放),什么是手动播放 手动播放流程 创建手动播放程序 其他语音播放函数 小结和注意事项 疑难解答,1、什么是手动播放,自动播放手动播放,2、手动播放流程,3、手动播放程序示例,4、设计一个手动播放函数,5、创建手动播放程序,新建工程把Hardware.asm、Hardware.inc和Sacmv26e.lib,以及A2000格式的语音文件复制到工程所在文件夹下,5、创建手动播放程序,把支持文件和语音资源添加到工程中。 在Project菜单项,选择Add to Project - Files 找到工程所在的文件夹,选择hardware.asm、hardware.inc和hardware.h三个文件(按住Ctrl键点选),确定。 IDE的Project菜单项,Add to Project - Resource 选择两个语音文件d1.24k和ww.24k,确定。,5、创建手动播放程序,把Sacmv26e.lib语音函数库添加到工程中。 选择Project - Setting,在左半部分的目录树中点选根目录。 选择Link栏,点击Library Modules右面的文件夹按钮。 在工程所在文件夹中选择sacmv26e.lib文件,确定。,5、创建手动播放程序,编写代码手动语音播放函数中断服务程序主函数,5、创建手动播放程序,添加语音资源索引表 在工程中打开Resource.asm文件,在文件结尾处加入语音资源索引表。,5、创建手动播放程序,下载试听连接好硬件(下载线、电源、扬声器等),在IDE的工具栏中点选绿色的“Use ICE”按钮。 点击红色叹号形的“Execute Program”按钮,下载并运行程序,就可以听到从SPCE061A播放出的声音了。,6、手动播放S480格式语音,S480格式语音资源的手动播放方法与A2000基本相同,只需把A2000手动播放程序中所有的 “A2000” 替换成“S480” 即可。,7、其他语音播放函数,void SACM_A2000_Pause()暂停播放语音。void SACM_A2000_Resume()从暂停的位置继续播放语音。Void SACM_A2000_Volume(int Vol)调节语音播放的音量。Vol的取值范围是015,数值越大,输出音量越大。,7、其他语音播放函数,声音渐入渐出函数,在Hardware.asm中定义,可防止播放开始和结束时产生爆音。Void SP_RampUpDAC1()Void SP_RampUpDAC2()Void SP_RampDnDAC1()Void SP_RampDnDAC2(),8、用汇编语言编写播放程序,Sacmv26e.lib语音函数库还有供汇编语言直接调用的函数,包括自动与手动播放函数,它们与C函数一一对应(前面加上“F_”前缀): F_SACM_A2000_Initial F_SACM_A2000_Play F_SACM_A2000_Stop F_SACM_A2000_ServiceLoopF_SACM_A2000_DecoderF_SACM_A2000_FillQueue ,汇编语音播放函数使用R1、R2寄存器来传递参数。例如,C语言的SACM_A2000_Initial(1);语句可改写为:r1 = 1call F_SACM_A2000_Initial C语言的SACM_A2000_Play(0,2,3);语句可改写为:r1 = 0r2 = 2r3 = 3call F_SACM_A2000_Play,8、用汇编语言编写播放程序,9、小结与注意事项,手动播放需要的支持文件与自动播放相同。Sacmv26e.lib, Hardware.asm, Hardware.inc手动播放的中断服务程序与自动播放相同。手动播放需要获取待播放语音资源的起始地址和结束地址,工程编译后会自动在Resource.asm中生成这些地址的索引表。,9、小结与注意事项,如果语音资源占用空间过大,超出了内置Flash Rom的空间范围,则在编译连接时会提示错误。对于A2000格式,每秒语音需要约1.5K Word的存储空间。对于S480格式,每秒语音至少需要0.3K Word的存储空间。SPCE061A内置的32K Word Flash空间除保存语音资源外,还要存储程序,因此,如果要播放较长时间的语音,需要外扩存储器(如EEPROM、Flash等)。,9、小结与注意事项,如果语音资源保存在外部存储器中,那么可以修改语音资源的获取函数void SP_GetResource(long Addr)。该函数已经在Hardware.asm中定义,默认从SPCE061A内置的Flash Rom中取出数据。,10、疑难解答,手动播放并没有用到语音资源索引表T_SACM_A2000_SpeechTable,为什么还要在Resource.asm结尾定义它?语音库中的手动播放与自动播放函数编译到了同一个目标文件(Obj),该目标文件需要访问外部函数、常量、变量等。虽然手动播放没有用到这个资源索引表,但为了满足同一目标文件中的自动播放函数的需要,仍然要定义它。,

    注意事项

    本文(第八讲语音处理应用(一)总结ppt课件.ppt)为本站会员(牧羊曲112)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开