- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Sunplus SPCE061A 微控制器 语音播放(自动播放) 语音播放 一、单片机实现语音播放的原理 二、语音播放程序示例 三、创建一个语音播放程序 四、小结和注意事项 五、疑难解答 一、单片机实现语音播放的原理 语音录制存储流程 语音采样 在定时中断的控制下,以一定的速率(8KHz)进行AD转换 压缩编码 将采集到的数据以某种算法压缩编码 存储 将编码后的数据保存到存储介质中 语音播放流程 数据提取 语音数据送入解压缩队列 数据解码 解压缩数据并送入输出队列 转换为模拟信号 在定时中断的控制下进行数模转换 转换为声音 模拟信号经滤波、放大,通过扬声器输出 用SPCE061A播放语音 自动播放与手动播放 自动播放 二、语音播放程序示例 语音播放程序示例 用户接口函数 在hardware.asm中定义的用户API,用户可以根据需要修改 F_SP_SACM_A2000_Init_ F_SP_InitQueue F_SP_ReadQueue F_SP_WriteQueue F_SP_RampUpDAC1 …… …… 三、创建一个语音播放程序 创建一个语音播放程序 第 1 步:新建工程 创建一个语音播放程序 第 2 步:复制语音播放需要的文件到工程所在的文件夹 语音播放支持文件 ,在“IDE安装目录 - Example - 61_Exa - Record”文件夹下可以找到 sacmv26e.lib hardware.inc hardware.asm A2000格式的语音资源,在“IDE安装目录 - Example - VoiceExa - ex1_A2000 - Voice”文件夹下可以找到 这里选择了d1.24k和ww.24k两个文件 创建一个语音播放程序 第 3 步:把刚刚复制的支持文件和语音资源添加到工程中。 创建一个语音播放程序 第 4 步:把Sacmv26e.lib语音函数库添加到工程中。 创建一个语音播放程序 第 5 步:编写语音播放函数。 创建一个语音播放程序 第 6 步:编写中断服务函数 创建一个语音播放程序 第 7 步:编写主函数。 在IDE中打开main.c文件,编写main()函数。 创建一个语音播放程序 第 8 步:添加语音资源索引表 创建一个语音播放程序 第 9 步:下载试听 四、小结和注意事项 小结和注意事项 语音播放需要的支持文件: Sacmv26e.lib, Hardware.asm, Hardware.inc 小结和注意事项 如果播放S480格式的语音资源,只需将上述程序中所有的“A2000”改成“S480”即可。 五、疑难解答 疑难解答 SACM_A2000_Initial(1);中的参数1是什么意思? 播放初始化,参数值为1代表“自动播放”模式,0代表“手动播放”模式,“手动播放”将在下一节介绍。 SACM_A2000_Play(SndIndex, DAC_Channel, 3);第三个参数3是做什么用的? 声音淡入和淡出设置。0-无淡入淡出;1-仅淡入;2-仅淡出;3-淡入淡出 如何制作自己的语音资源? 凌阳提供了语音压缩工具,可以把.wav格式的声音文件压缩成A2000或S480格式。该工具的使用方法将在后面的课程中介绍。 凌阳科技大学计划网站: 凌阳科技大学计划邮箱: E_mail: unsp@ 凌阳科技大学计划客服中心: Tel: 0102911 凌阳科技大学计划技术支持中心: Tel: 0102919 凌阳语音函数库提供了两种播放模式:自动播放和手动播放。 所谓“自动播放”就是把播放流程中取数据送入解码队列、解压缩后送入播放队列的过程用一个函数自动完成,我们不必关心实现语音播放的细节,只要简单地调用几个函数就可以了。 “手动播放”将取数据送入解码队列、解压缩后送入播放队列操作用三个函数分别实现,我们可以自行编写程序来控制播放流程,具有更大的灵活性。例如当语音资源需要从外部存储器获取时,只有手动播放才可以完成。 本节主要介绍“自动播放”。 这是一个播放A2000格式语音的程序示例。 程序的第3行进行播放初始化,参数1的含义是“采用自动播放模式”; 第4行确定即将播放的是哪一段语音,以及通过SPCE061A的哪一个DAC输出等; 第5行到第9行是一个循环,它的作用是不断对语音资源进行解压缩,再把解压缩后的数据填入播放队列中。 第8行的含义是向0x7012单元写入数值1,也就是清看门狗。 当语音播放完毕后跳出循环,执行第10行,停止播放。 把播放队列中的数值送入DAC的过程是由中断服务程序完成的。方法是在FIQ_TimerA的中断服务程序中调用黄色显示的这个函数。 凌阳语音库既具有
您可能关注的文档
最近下载
- 2025年包装机项目可行性分析报告.docx
- 云南省昭通市2025届中考 数学模拟试卷.docx VIP
- xxx30兆瓦特许权光伏电站职业病危害控制效评价报告书.doc VIP
- 八年级信息科技第一章《从感知到物联》单元整体教学设计.docx VIP
- 合同能源节能改造项目可行性研究报告.pdf VIP
- 票据业务知识培训课件.pptx VIP
- SEMI E30-1103(完整中文版本).pdf
- 05SFG04-钢结构装配式防倒塌棚架结构设计图集.pdf VIP
- 2018年下半年全国事业单位联考A类《综合应用能力》题及参考答案.pdf VIP
- 中国上海国际艺术节中心招聘笔试备考题库及完整答案详解1套.docx VIP
文档评论(0)