雒驼 蒙顺政 李伟
摘要:听觉延迟反馈技术(DAF),被用于矫正口吃近30余年,具有良好的疗效,但DAF设备的便携性与经济性却难以两全。而基于手机平台实现的DAF功能,具有与手机共享设备、便携性好、成本低的优势。本文介绍了手机DAF软件实现的程序设计方法与技术要点,并通过在手机上实际运行DAF软件进行试验验证,证明在手机平台上实现DAF功能是有效,可行的。
关键词:听觉延迟反馈; 安卓系统; 手机; 软件; 编程
1、DAF口吃矫正器械介绍
听觉延迟反馈(DAF)技术被用于口吃矫正疗法已经获得了国际及国内研究者的认可[1],美国某公司以此原理制造了思比易口吃矫正器,国内一些公司也推出了基于同样原理的盒式矫正设备。DAF技术通过延迟语音信号从发音器官到达听觉器官的时间,来促进言语流利程度。DAF器械一般的工作原理是通过麦克风采集使用者的语音,通过模/数转换器转为数字信号,再送到数字信号处理芯片。 数字信号处理器在特制的算法控制下完成延时、自动增益控制等处理,再经过数/模转换成语音信号,最终用扬声器输出到使用者耳内,达到听觉延迟反馈的效果。
2、基于安卓系统实现DAF的优势
思比易有矫正口吃的效果,但是却价格昂贵(近5000美元)。盒式矫正仪也有携带不便的问题。所幸以现在的技术手段和目前智能手机成熟的硬件配置,要开发一套基于安卓智能手机的该软件并不困难。与手机共享操作平台不仅使该设备的便携性得到保证,更能节省设备的硬件成本,易于推广和使用,为更多患者提供矫正口吃的机会。
3、DAF功能在安卓系统中的实现
本项目在eclipse平台下编程,依托于安卓2.2系统自带API库进行开发。音频处理部分用到了安卓2.2系统的android.media.Audio下的若干API功能,这个库中的API主要使用底层函数,虽然对音频文件直接操作的功能较差,功能相对原始,却能在精确控制后,实现稳定的流媒体处理及音频的基本输入输出。图1为本程序的流程简图。
3.1 连续输入功能的实现
为了能实现实时延时功能,需要对音频数据进行实时采集和控制,本项目采用带缓冲区的流媒体录音机制对语音进行采集。采集音频信号并用缓冲区保存语音信息时,需注意输入数据的连续性,防止重复写入和丢失缓冲区段。这就需要预先定义缓冲区的大小和位置,以防造成缓冲区数据存储不正常
本项目采用Audiorecord采集音频,可以将音频信号按预先指定的大小分段打包,并保存在预先指定的缓冲区中。当按下启动键时,录音线程即时启动,不停的将通过话筒采集到的音频信号顺次写入缓冲区段,待运行到输出线程时,进行读取。
3.2 连续输出功能的实现
音频的连续输出是保证反馈语音流畅自然的重要步骤,这部分也同样采用读取缓冲区数据进行流媒体播放的方式。由于流媒体播放具有实时性,若缓冲区数据出现间断,播放的语音信号也会出现间断或是不连贯,因此制定缓冲区的大小和位置,也对语音播放的质量有直接的影响。
本项目采用AudioTrack将储存在缓冲区段中的数据搬运到扬声器进行播放。该线程可以读取指定大小和位置的缓冲区数据,并将这些数据包重新组合成音频信息,输入扬声器。
3.3 延时功能的实现
从音频信号采集到输出,为保证音频信号的连贯,不可避免的要采用多线程操作,这时如何控制线程占用CPU的时间,是控制延迟时间的重要步骤。本项目采用Timer()监测每个录音循环的延迟,通过对缓冲区大小进行动态调节的方法,来实现动态延时的控制。动态延时控制主要依靠流媒体缓冲区的传输特性。因为音频采集模块和输出模块不能同时对一个缓冲区段进行调用,音频采集模块只有在完成一个缓冲区段的写入时,音频输出模块才可以对这个缓冲区段进行调用。而音频信号从话筒到音频采集模块以及从音频输出模块到扬声器所用的处理时间相对音频信息写入缓冲区段的时间极短,所以从缓冲区段写入开始到写入完成的时间,就基本决定了从音频输入到输出的延迟,这个延迟主要取决于缓冲区段的大小。
4、软件运行实验与结论
软件运行的平台为安卓2.2操作系统的野火G8手机,该手机属于安卓手机中硬件性能较差的手机,因此能在G8上稳定流畅运行的程序,在现有的其他安卓2.2系统手机上也能完美运行。通过植入的Log.d("test2", "Done")在Eclipse平台上所给出的LogCat运行报告测试(图2),当选择语音延迟50ms时,语音延迟基本稳定在40-60ms的区间内,达到了DAF设备的最小延迟要求。这说明,基于安卓手机平台搭建的DAF软件/设备是有效可行的。■
参考文献
[1]杨利,蒋涛等. 思比易(SpeechEasy)口吃矫正器矫治口吃临床观察. 中国听力语言康复科学杂志2006,3: 27~28
[2]郭宏志,安卓应用开发详解. 电子工业出版社 2010.6
[3]杨玲. 数字音频实时延时处理器的设计与实现. 电子科技大学硕士学位论文. 2001.3
[4]孙卫琴. Java面向对象编程. 电子工业出版社2006
作者简介:
雒驼,男,1985年出生。北京工业大学机电学院硕士研究生。蒙顺政、李伟,北京工业大学机电学院硕士研究生。
本文为:北京工业大学第9届研究生科技基金项目