基于Android平台声控音乐播放器的设计与实现
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
33
图3
获取全部资源列表流程图 4
获取语音识别数据流程图
( 1) 获得语音数据 Google 语音服务需要网络支持, 所以需要检测当 因此, 为增强用户体验, 笔者 前用户的网络连接状况, 设计了自动检测当前用户的网络连接状况的模 块
[ 6 ]
① 歌曲名字 - 歌手名字. mp3; ② 歌曲名字. mp3; ③ 歌手名字. mp3。 其中以第一种形式最为常见, 程序设计时, 这三 种情况都需要考虑到。另外, 手机存储的所有歌曲曲 目中, 一个歌手往往对应有很多首歌曲或者甚至有可 能是不同的歌手对应同一歌曲名, 在匹对过程中, 用 数据集 song_namelist 和 song_pathlist 分别来存储这 两种情况下的歌手名字和歌曲名字, 作为语音查找到 的歌曲列表 songOfSdCard_ListView 所用的数据源。 最后, 获取数据后对数据进行匹对的结果终存入 song_namelist 和 song_pathlist 中, 流程图如图 5 所示。
[ 5 ]
得从 SongSourceActivity 得 到 全 部 歌 曲 资 源 列 表; ( 2) 语音查找歌曲; ( 3 ) 获得语音查找的歌曲列表; ( 4) 播放列表歌曲和语音查找到的歌曲。 3. 2. 1 获取全部歌曲资源列表 获得手机 SD 卡中所有的歌曲是播放器播放音 主要是需要取得歌曲名或演唱者名和歌曲 乐的前提, 所在的路径。 首先需要检测 SD 卡的状况, 看 SD 卡是否已经正 通过判断语句 Environment. get ExternalStor确安装, ageState( ) . equals( Environment. MEDIA_MOUNTED) 真 通过 Cursor cursor 获取得到 SD 卡上 假来判断。其次, 所有的歌曲数据, 其方法为( 省略部分参数) :
。在主类 MusicPlayerActivity 中利用方法 check-
NetWorkStatus( ) 引用 ConnectivityManager cwjManager 对象来判断网络是否连接正常。 此外, 要用到 Google 语音搜索服务, 必然需要 判断当前用户手机是否支持该服务, 所采用的方法 是通过 queryIntentActivities( ) , 查询 Android 系统的 所有 具 备 RecognizerIntent. ACTION _ RECOGNIZE _ SPEECH 的 Intent 的应用程序, 若有, 点击开启此服 务后, 能启动本应用。 语音识别完成后, 调用回调函数 onActivityResult( ) 回调获取从 Google 得到的数据, 写入数据集 链表 voiceData_list 之中:
voiceDate_list = data. getStringArrayListExtra ( RecognizerIntent. EXTRA_RESULTS) ;
获取语音识别数据的具体流程如图 4 所示。 数据集链表 voiceDate_list 存储的数据将用来与 手机存储的歌曲数据信息进行匹对。 ( 2) 数据匹对 数据匹对需要遍历存储歌曲名称的数据链表 songName_ list 和 语 音 识 别 的 后 返 回 的 数 据 链 表 voiceDate_list。为了增 加 匹 配 的 有 效 性, 在匹配之 前, 使用 String 类的 replace( ) 去掉两个数据链表中 仅仅只是大小写不相同的字符应 无效的空格; 此外, 该 视 为 相 等, 即需要用 equalsIgnoreCase( ) 方法来比 较两个字符串是否相等。 歌曲名称的形式并不固定, 往往具有以下三种 常见的形式: 3. 2. 3 音乐播放 音乐播放列表主要是有两个播放列表, 其一是从 音乐库中获得的音乐数据并显示在 songOfSdCard_Li图5 获取歌曲数据流程图
3
3. 1
软件功能实现
软件的功能模块 根据对音乐播放器的功能性需求分析, 可按功
能对本应用划分出功能模块图, 主要包括两个模块, 分别是与用户交互的界面实现的功能模块和后台实 现的功能模块, 如图 2 所示。 3. 2 播放器主要模块的详细设计与实现 本音乐播放器的三大模块中的核心组件是 MusicPlayerActivity 和 MusicService, 其中 MusicPlayerActivity 是最重要的组件, 作为整个应用程序最核心的 组件, 它的实现分为两部分, 一是良好的视觉效果, 即 简单大方的 UI 设计, 另一方面是内部逻辑, 包括实时 更新状态、 维护管理生命周期和一些切入切出的跳 MusicPlayerAc转。从声控音乐播放器的功能来看, tivity 的设计过程应该从四个方面来考虑: ( 1) 需要获
*
台功能让软件以最小消耗换取最多的收益, 真正让用 欢乐无忧。 户轻松自由,
2
2. 1
研究基础
Android OS 架构研究 Android 手机系 在 Android 作为平台的手机中,
统是基于 Linux 平台的开源手机操作系统, 其软件架 包括应用层、 应用平台层和系统 构又可分为三层, 层
[ 3 -4 ]
遍历游标 cursor 对象, 将歌曲名和歌曲存储路径 分别存储到数据链表集 songName_list 和 songPath_list 之中, 即可获取到所有的音乐资源列表。获取全部歌 曲资源列表流程图如图 3 所示。 3. 2. 2 语音查找歌曲 语音找歌是本应用最大的特色功能, 其实现原理 将得到的 是利用 Google voice 解析用户语音输入指令, 语音输入结果与手机上存储的歌曲数据进行匹对, 匹对 成功则即可成功播放该音乐。语音查找歌曲模块主要 实现两个功能: ( 1) 获得语音数据; ( 2) 数据匹对与存储。
Cursor cursor = context. getContentResolver( ) . query( MediaStore. Audio. Media. EXTERNAL_CONTENT_URI,new String [ ] { …… } , MediaStore. Audio. Media. MIME_TYPE + " = ? or " + new String[ ] { MediaStore. Audio. Media. MIME_TYPE + " = ?" , " audio / mpeg" , " audio / xmswma" } , null) ;
。本应用系统功能在于实
时识别并执行用户语音指令。 音乐播放器的层次架构主要由三部分组成, 包 括音乐库层、 音乐播放层和后台服务层。其中音乐播 放层包括了音乐播放的主界面模块以及播放队列模 块, 音乐播放的主界面模块贯穿程序的始终, 作为整 个系统的主模块, 允许其他模块的切入和切出。而播 放队列模块是指音乐库中包括正在播放的歌曲的集 合。后台服务模块包括音乐服务模块和服务控制模 块。音乐服务模块负责播放和控制音乐播放状态。
32
机上安装的各种应用程序, 包括通讯录、 短信息和相 机等。本文研究和实现的声控音乐播放器也属于该 层。声控者乐播放器架构图如图 1 所示。
图1
声控音乐播放器架构图
2. 2
Байду номын сангаас
终端应用架构及运行流程 本远程终端应用是基于广义上的 C / S 服务架构
图2 音乐播放器功能模块图
主要应用于通过语音信号识别用户指令, 从而 开发, 完成指定工作, 客户端即为 Android 手机, 服务端为 Google 语音处理服务端
[ ] 重庆市知识产权专项基金; 国家科技重大专项 基金项目
。其中, 应用平台层位于 Android 操作系统和
( 2012ZX03005002 - 005 ) ; 重庆市应用开发计划项目( cstc2013 yykfA40006 )
HomeScreen 用于用户开始显示, 是管理 应用层之间, 和开启应用程序的平台。最上层的应用层包含了手
1
引言
随着通信设备网络和计算机科学的不断发展, 智能
曲, 只要说出歌曲的名字或者演唱者的名字就能够播 同时, 还能实现以下功能: 在听歌时, 放想听的歌曲, 可以随时拉动进度条控制音乐的播放进度, 可以实现 歌曲播放状态的切换; 在歌曲列表中, 还可实现歌曲
[ 1 -2 ] 。它的后 的移除, 同时, 歌曲播放支持后台操作
基于 Android 平台声控音乐播放 * 器的设计与实现
周丽娴, 梁昌银, 沈 ( 重庆邮电大学 【摘 泽 通信网与测试技术重点实验室, 重庆 400065 )
·实用设计·
要】随着语音识别技术的不断发展, 人机交互将更多依赖于语音交流。 因此, 在移动终端开发出功能实用以
并结合 及界面美观的手机声控应用程序具有广阔的市场前景。基于 Android 移动平台开发设计了声控音乐播放器, Google 语音识别技术, 以及对音乐播放功能的实现, 最终设计出一个可以语音来控制音乐收听的应用 。 同时, 还创 使用户能够用语音快速查找到手机 SD 存储卡中的同一歌手的所有歌曲。 通过 造性地实现了语音搜索歌曲的功能, 语音播放音乐的功能完全实现, 性能稳定可靠, 实用性强。 真机测试, 【关键词】Android; Google 语音识别; 声控; 音乐播放 【中图分类号】TN912 【文献标志码】A Design and Implementation of Voicecontrol Media Player on Android ZHOU Lixian,LIANG Changyin,SHEN Ze ( Key Lab. on Communication Networks and Testing Technology,Chongqing University of Posts and Telecommunications,Chongqing 400065 ,China) 【Abstract】With the development of voice recognition technology, the interaction between machines and brains will rely more control application of practical on voice communication. Therefore,it will be a vast future market for developing mobile voicefunction and beautiful panel. The media player of this thesis designed is based on Android platform,by integrating Google voice technology,with the implementation of music player function,a software application is designed which could help the the idea is came up creatively and the same theory can be used to realize user listen to music by voice command. In the meantime, the function of searching the songs by speech, so that the users could find the same singer’ s all the songs in SD memory card by voice. According to the real machine testing, it fully realized the voice activated playing, the performance is stable and reliable. 【Key words】Android; Google speech recognition; voice - control; music playing
手机不再仅是通信网络的终端, 还将成为互联网的终 端, 新一代的移动终端用户对移动设备的功能和性能有 用语音来控制手机更是逐渐成为 了更高的要求。目前, 高端智能手机的必备功能之一。在很多特殊的环境中, 比如驾车, 或者只是放松地坐着, 有时人们会希望解放 通过声音就能操纵手机应用, 让生活更便利。 双手, 本终端应用是一款基于 Android 系统开发的, 对 手机进行语音操作的音乐播放器, 利用 Google 语音 加上 GPRS 或 WiFi 信号, 就可以语音查找歌 搜 索,