基于Android平台的智能化音乐播放器设计与实现

时间:2022-08-01 08:42:20

基于Android平台的智能化音乐播放器设计与实现

摘 要:介绍新一代最有发展潜力的手机开发平台Android开发构架。针对当前Android平台下多媒体音频用户体验方面存在设计空白的现状,设计一款智能音乐播放器,在Android手机客户端进行测试得到实现。这款播放器具有语音点歌、检测环境噪音分贝降低噪声,判断用户所处环境并自适应调整播放音量的功能。

关键词:Android;音频用户体验;语音交互;应用程序

中图分类号:TP311.52

Android是Google于07年推出的开源操作系统,其巨大的市场份额奠定了Android作为移动开发者最佳开发平台的稳固地位[1]。

随着语音交互控制技术广泛应用于手机、平板电脑等产品,音频智能化与优质的用户体验成为了广大消费者更高层次的需求。据调查,索尼A系列、HTC魔音系列、步步高HIFI系列等品牌手机都推出了拥有高品质音质的产品,尽管高保真的音频输出能够很好的还原音频原声,但是,对于不同环境下输出音频用户体验存在的差异考虑不够全面。针对此问题,设计并实现一款基于Android平台的智能音乐播放器。该款播放器可以根据用户需求偏好、周边环境调节设备音量降噪、智能语音点歌,以期达到提升音频用户体验的效果。

1 Android开发构架

Android是Google公司07年推出的手机操作系统,它是真正意义上的开放性的移动开发平台[2]。Android的系统构架分为四层,分别是Linux内核层、系统运行库层、应用程序框架层和应用层[3]。因为其开放的体系构架,Android成为了最具可移植性的操作系统之一。本应用只需使用其开源的 框架在应用层上用Java语言进行开发。

2 播放器设计与实现

2.1 构架设计

智能音频播放器的开发构架图:

图1 播放器开发构架图

音频优化播放器功能开发的第一步是求采集外部音频信息,包括用户语音信息和环境噪声信息;第二步处理音频,降噪模块对噪音类型及滤波器的设计等多重因素综合考虑,将语音与环境噪声分离,滤去噪声;语音点歌模块提高识别准确率;智能调节音频音效模块通过判断外部环境类型,调节音量门限值。

2.2 降低音频噪声

录音所获得的音频受环境噪音干扰很大。国际通信标准中,人声范围为300Hz-3400Hz。分析频谱主要保留这个频段范围内的能量。

(1)采集外界声音

外界声音的音量采集依靠软硬件结合来实现。Microphone是现有大多数终端都采用的硬件模块。代码:

mRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);

实现对硬件Microphone的调用。

(2)FFT(傅里叶离散变换)算法

Android语言中没有现成的FFT集成函数,利用开源的模块集成新的功能。

(3)降噪处理

滤波器降噪处理后,使用音频频谱图辅助分析降噪效果。

播放器在45-60 (较嘈杂)的环境下测试,降噪前、后的频谱图见图2、图3:

图2 降噪前录音频谱 图3 降噪后录音频谱

2.3 语音点歌

播放器增加了语音点歌功能,语音识别技术是语音点歌功能的核心所在。Google 研发的语音库是开源的,连接网络后终端与云端的语音库匹配识别用户的语音输入,并发出相关指令。

(1)开启网络访问权限

在项目的“manifest”文件中加入:

开启网络访问权限。

(2)链接云端语音库

用户语音输入通过 采集并发送到云端进行处理,匹配。代码:

Intent intent=new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);

开启语音识别模式。

(3)云端匹配并反馈

通过:

ArrayList results=data.getStringArrayListExtra(Rec.EXTRA_RESULTS);

获得从云端匹配的语音信息。程序可根据该信息在播放列表中进行搜索,当匹配到相关音频时,触发播放器,开始播放音频。

2.4 自适应调节音量

用户可能处在变化的环境中,为了得到良好音频体验,播放器开发了自动调节音量功能。

(1)获取环境噪音分贝值

通过:mRecorder.getMaxAmplitude();

获取当前录音时的最大振幅,通过:

14.14 * Math.log(x) / Math.log(10);

算法将当前的最大振幅转化成分贝值。取具代表性的分贝值作为一段时间内的环境音量。通过:

Noise.remove(0);

Noise.remove(i-1);

去除Noise中的最大和最小值,取得平均分贝值,视为用户所处环境的噪音大小。

(2)设定初始音量

不同终端设备有不同的可调节音量等级。首先通过:

SeekBar mMusicVolume;

int order=mMusicVolume.getMax();

获得设备音量等级数。再将环境音量分贝值转化为设备上对应的音量等级a。测试表明

在环境噪音的音量等级上加1/3个音量等级,能抵消环境噪音的干扰。通过:

int b=a+order/3;

设定音频的初始播放音量。在“播放”命令后,先调用环境分贝测试函数,取得合适的初始音量后播放音频。

3 测试与分析

音频用户体验测试方法:召集50名测试者在相同环境下,对同一声音质量进行评分。初始播放音量自适应有效性测试(用于调试的终端的音量等级为15)。

在一般的室外环境中(环境分贝测试值为:54-70dB),测试结果如表1所示:

由结果分析可知,在可接受误差范围内(环境音量等级的上下波动等因素引起),自适应的初始播放音量等级是在环境音量等级的基础上加1/3的音量等级。使用功能优化播放器进行测试,用户在室外环境对音频质量评价为5(优)和4(良),均高于对普通播放器的音频质量评价。测试结果表明,智能调节音频音效有效地提高了音频用户体验。

4 结束语

本文介绍了Android平台下智能化音乐播放器的设计与实现。通过对语音搜索技术、音频采集、降噪处理、音频等级划分进行研究,设计出具有创新功能的智能音乐播放器,提升用户体验。实现了音频降噪、语音点歌、自适应调节音频播放音量功能,初步实现了音频多方面优化。下一步计划将音频优化推广到更多应用环境并延伸到即时语音传输系统,进一步的普及以达到更高商业价值。

参考文献:

[1]Android中文网.Android平台五大优势解析[OL].http://,2010.

[2]王良虎.基于Android移动终端的社会化媒体平台设计与实现[D].成都:西南交通大学,2011.

[3]张永久.基于Android系统的MP5播放器的设计与实现[D].西安:西安电子科技大学,2012.

[4]李瑾,王亚民,张延昌.基于Android的路线搜索移动应用设计与实现[D].西安:西安电子科技大学,2011.

作者简介:张雅琪(1991.12-),女,陕西西安人,本科,主要研究方向:多媒体、人工智能、无线通信技术。

作者单位:北京邮电大学,北京 102209

上一篇:基于高斯滤波的航拍视频图像处理研究 下一篇:基于Web2.0的信息检索课程设计方案