- 1、本文档共4页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
?
?
基于音频水印技术的多机器人声音身份识别仿真软件
?
?
基于音频水印技术的多机器人声音身份识别仿真软件
1.引言
机器人技术突飞猛进,是时代的潮流。未来机器人与人交流的情形将不再是“一机对一人”,而是“多机对多人”。然而与人交流时机器人之间需要通过声音识别对方身份,同时不能让参与交流的人有所觉察,所以需要在机器人声音中嵌入特征水印,解决多个机器人之间的声音识别问题。
语音识别和音频水印技术是计算机信息处理的关键技术。音频水印技术是指通过修改音频信号从而在原始信号中嵌入附加信息的技术。目前音频水印嵌入技术主要有DCT域音频水印嵌入、码分复用数字音频水印嵌入等等。音频水印识别技术主要有系统特征参数提取识别、DTW在线并行算法识别等等。
本文基于MATLAB开发环境,利用FDATool与用户界面GUI等设计工具,通过分频式音频水印嵌入与提取方法,开发了一套模拟多机器人交谈情形并识别各个机器人讲话时刻的仿真软件。
2.音频水印嵌入与提取方法
音频水印嵌入与提取方法的实质是在一段声音中嵌入特定的水印作为信息隐藏,接收后再将所隐藏信息提取出来的方法。
在本仿真软件中,首先选定一段声音作为原始基音,设定原始基音就是多个机器人相互交谈所发出的声音。假设机器人有N个,先在20HZ-20000HZ的频率范围内为N个机器人选定N种水印载波频率,依次用中心阻带频率为的N个带阻滤波器对原始基音进行滤波得到基音信号。然后为每个机器人指定一个身份识别ID号,把ID号的二进制数作为待嵌入水印数据,频率选为。再用第i个待嵌入水印数据对频率为fi的正弦波载波进行调制,把调制后的信号幅值调整到基音信号平均幅值数倍以下与基音信号叠加。水印添加时刻统一指定为基音信号的时刻。至此得到各个机器人的音频信号,也就是讲话声音。模拟讲话时,各机器人在设定时刻输出一次自己的音频信号,所有机器人的音乐声相互叠加齐鸣。
在多台机器人讲话的同时,每一个机器人对齐鸣声进行采样。先依次用中心通带频率为的带通滤波器对齐鸣音信号进行滤波,滤波后得到调制了的水印数据的正弦波载波信号,再用通带频率为f0的低通滤波器进行滤波,得到ID号的二进制数据。在对所有的载波频率都进行了一次同样的操作后,一个机器人就得到了所有机器人的ID水印数据,并获得各机器人的发声时刻。
3.软件设计与实现
多机器人声音身份识仿真别软件主要由音频水印嵌入模块和身份ID识别模块组成,通过MATLAB语言,FDATool设计工具实现音频水印的嵌入与提取,运用Simulink算法模拟多个机器人的交谈情形,并通过GUI用户界面设计工具实时检验发声机器人的身份ID和发生时刻。
3.1音频水印嵌入模块
Sinewave模块用于生成水印载波频率为的正弦波,Subsystem模块使用Step函数产生水印二进制码波形,并设置频率为。Subsystem模块后面的延时模块Transportdelay用于设置延迟播放声音时间。Triggeredsubsystem模块用于接收到高电平时触发显示当前接收时间。Sinewave模块和Subsystem模块生成的波形叠加后通过零阶保持器输出至扬声器。
3.2声音身份识别模块
声音身份识别模块的基本结构如图2所示,FromAudioDevice模块为麦克风声音拾取。设置高频带通滤波器中心通带频率为,将拾取到的声音传给高频带通滤波器DigitalFilterDesign,将携带二进制水印数据的高频正弦波留下,其余信号抑制掉。由于正弦波有负值部分,需要用绝对值函数Abs将正值部分取出。设置低通滤波器DigitalFilterDesign1的通带频率为f0,将正弦波的正值部分中频率为f0的水印滤出。为了获得完整的二进制水印波形,需要对波形幅值进行调整。把水印信号送给Bias模块和符号函数Sign后,得到幅值为1或-1的波形,再通过波形幅值加1和0.5倍增益运算,提取出二进制水印波形。
3.3GUI用户界面模块
GUI用户界面如图3所示。左上角的下拉菜单用于选择机器人编号,底下的滑动条用于设置机器人发声延迟时间。右上角的控制台方框内有两个按键:“讲话”和“聆听”,点击“讲话”按键后扬声器输出所选编号机器人的声音,点击“聆听”按键后麦克风接收外界声音。在控制台下方显示的是识别出的各机器人的发声时间。软件界面中央是以时间为横坐标的各机器人声音中所携带水印的波形图。
Matlab的GUI用于实现用户和机器之间的交互,在仿真软件中,底层程序将对Simulink模块中的参数进行设置,并将workspace中产生的数据通过显示在GUI用户界面上。例如设置机器人发声延迟时间时,需要对滑动条进行操作来设定时间值f1=str2doubl
文档评论(0)