简介
实现语音K歌,语音搜索歌曲、歌手,原唱,伴唱,升调、降调,收藏,热门歌曲,歌曲排行等等语音控制指令。 参考demo,可以合入到自己的K歌软件里面。 自动对接夏杰语音,安装夏杰语音,就可以实现语音控制。
夏杰语音文档对接说明
1、软件接口注册
对接软件主动发送软件注册信息 public static final long SEMANTIC_KTV = 0x1 << 6;//0x40; Intent localIntent = new Intent(); localIntent.setAction("com.peasun.aispeech.action.app.register"); Bundle data = new Bundle(); data.putString("package_name", [your activity package name]); data.putString("api_package", [your api package name]);// data.putLong("category", SEMANTIC_KTV); localIntent.putExtras(data); /** * 注意对接的语音版本,将 setPackage 的参数改为对应语音软件的 package name. * 国际版"com.peasun.aispeechgl" * 大陆版"com.peasun.aispeech" */ localIntent.setPackage("com.peasun.aispeech"); //context.sendBroadcast(localIntent);//广播动态注册接口 context.startService(localIntent);//服务动态注册接口,4.0.6.0 以上版本支持 //说明:夏杰语音 4.0.6.0 以上版本,同时支持广播和 service 动态注册接口2、K歌接收语音命令服务名称
对接服务 Action:com.peasun.aispeech.action.ktv3、搜索指令
3.1 方式一
直接传递歌手和歌曲名称混合,不对歌手和歌曲进行语义提取
| 数据名称 | 类型 | 格式说明 | 含义 |
| common | string | search | 语音指令 |
| keyword | string | 歌手/歌曲名 | 歌手名 歌曲名 歌手+歌曲名 |
3.2 方式二
需要对歌手和歌曲做精准语义提取
| 数据名称 | 类型 | 格式说明 | 含义 |
| common | string | search | 语音指令 |
| singerName | string | 歌手名 | 歌手名 |
| songName | string | 歌曲名称 | 歌曲名称 |
4、控制指令
| 数据名称 | 类型 | 格式说明 | 含义 |
| common | string | control | 语音指令 |
| action | string | 控制动作: Leaderboard 歌曲排行榜 Popular 热门歌曲 Latest 最新歌曲 AddToFavorites 收藏歌曲 MyFavorites 我的收藏 ToNext 切歌 Replay 重唱 Play 播放 Pause 暂停 OriginTrack 原唱 Track 伴唱 UpTone 升一个音调 DownTone 降一个音调 OriginTone 恢复原调 Fullscreen 全屏 ExitFullscreen 退出全屏 Return 返回 StartRec 开始录音 StopRec 停止录音 UpVolume 音量+1 DownVolume 音量-1 UpMic 麦克风音量+1 DownMic 麦克风音量-1 Mute 静音 UnMute 取消静音 PlaySongIndex 搜索后播放第几首歌 PrePage 上一页,在语音搜索列表中有效果 NextPage 下一页,在语音搜索列表中有效果 | |
| PlaySongIndex | string | 1. 搜索后播放第几首歌,这里请传入数字如:播放第一首歌传 String 类型:“1" |
5 注意事项
5.1开发集成问题
5.1.1 添加权限
Androidmanifest.xml 添加一下权限 <uses-permission android:name="com.peasun.aispeech.aiopen.control"/>5.1.2 对应 receiver 添加
<receiver android:name="com.peasun.aispeech.aiopen.AIOpenReceiver" android:exported="true"> <intent-filter> <action android:name="com.peasun.aispeech.action.app.register.require" /> <action android:name="com.peasun.aispeech.action.ktv" /> </intent-filter> </receiver>5.1.3 注册广播
public static AIOpenReceiver registerVideoReciver(Context context) { AIOpenReceiver receiver = new AIOpenReceiver(); IntentFilter filter = new IntentFilter(); filter.addAction(AIOpenConstant.AI_OPEN_ACTION_KTV); context.registerReceiver(receiver, filter); return receiver; }5.1.4 创建 service 接收指令和参数
<service android:name="com.peasun.aispeech.aiopen.AIOpenService" android:exported="true"> <intent-filter> <action android:name="com.peasun.aispeech.action.app.register.require" /> <action android:name="com.peasun.aispeech.action.ktv" /> </intent-filter> </service>开放平台的sdk demo源码使用说明:
sdk demo源码实现了动态注册【通过service intent接口,之前广播的在高安卓版本可能会被屏蔽】,即对接软件只需运行一次,就会动态向夏杰语音注册相关功能,然后就能收到相关指令。【后续该设备上,该软件可以无需再次注册,都能收到相关指令。】
sdk demo收到指令后,【有对应的日志打印】,对接软件需要根据该指令自己实现相关功能。例如,搜索内容?播放、暂停等等。
对接sdk是通过service接收语音指令,所以,如果该软件是在后台,那么需要自己拉起一下对应activity。