当前位置:主页 > 查看内容

蓝牙遥控器智能语音识别方案

发布时间:2021-07-29 00:00| 位朋友查看

简介:随着人工智能的发展,语音识别和语义理解技术日益趋近成熟, 达到商用水平。在机顶盒领域,智能语音遥控器已成为标配,实现方 案很多,其中一种讨论如下 一、语音数据(二进制 PCM 流)应用层 APK: 应用层 APK 程序利用 AudioRecorder 或 MediaRecorder 接……

随着人工智能的发展,语音识别和语义理解技术日益趋近成熟,
达到商用水平。在机顶盒领域,智能语音遥控器已成为标配,实现方
案很多,其中一种讨论如下
ly1.png

一、语音数据(二进制 PCM 流)应用层 APK:

应用层 APK 程序利用 AudioRecorder 或 MediaRecorder 接口,直
接从安卓系统麦克风处读取,如:

 recorder = new AudioRecord(MediaRecorder.AudioSource.MIC, sampleRate,
 CHANNEL_CONFIG, AUDIO_FORMAT, min);
 SampleRate = 16000;
系统 Rom:

机顶盒系统 Rom 需要集成遥控器厂家提供相应 so 库或蓝牙、语音
方面的标准库文件,底层库上报数据给 AudioFlinger,再转发至
AudioRecorder。
因各家遥控器厂商的 Audio Hal 层 so 库会有些许差异,最好机顶
盒厂商与遥控器厂商联调。

二、语音按键

关于遥控器语音键,较为简单的方式是 Broadcast 广播方案:
系统在安卓 framework 层监听所有按键的 code,如果是语音键,
则发送一个广播出来:

 按下是:net.sunniwell.action.VOICE_KEY_PRESS_DOWN
 抬起是:net.sunniwell.action.VOICE_KEY_PRESS_UP

应用层 apk 通过注册广播接收器 BroadcastReceiver 获取语音键按
下和抬起的动作。
接收广播后,取 intent.getIntExtra("keyCode", 0)这个按键信息,如
果是 142,则确认为蓝牙状态语音按键。

 String action = intent.getAction();
 int code = intent.getIntExtra("keyCode", 0);

本文转自网络,原文链接:https://developer.aliyun.com/article/785946
本站部分内容转载于网络,版权归原作者所有,转载之目的在于传播更多优秀技术内容,如有侵权请联系QQ/微信:153890879删除,谢谢!

推荐图文


随机推荐