伦茨科技-智能语音遥控器

在这里插入图片描述
随着智能时代的来临,智能遥控器也走进了我们的生活,越来越多的功能和简单的操作深得我们这些宅族的喜欢,只要轻说一句话就可以搞定很多复杂的遥控操作非常的方便。
遥控器的单向语音功能: 麦克风 MIC 音 拾音 ( 上行) )*功能,或者是 听筒 SPEAKER/ 耳机HEADPHONE播音(下行)*功能。
遥控器的双向语音功能:麦克风拾音(上行)功能+听筒/耳机播音(下行)功能。
一些专业术语:
遥控器的麦克风:全向降噪式麦克风。全向,是说这麦克风的灵敏度,在相同的距离下,在任何方向都是相等的。降噪,是降低噪声功能。如果一个遥控器说降噪,可以是麦克风、耳机、听筒自身的降噪功能,也可以是遥控器电路上增加降噪电路。后者需要更大的成本,但一般的,高音质的方案,都有后者功能,有些是通过 IC 内部电路+程序处理完成降噪处理。
遥控器的耳机:接口采用标准Ф3.5 的立体声通用耳机接口。
遥控器的语音采样率:听筒/耳机:48k/16bit;MIC:16K/16bit 等,(如果客户指定 MIC 是使用来做K 歌的,则采样率要求更高:比如 24K/16bit、48K/16bit 等)
现在智能语音功能,一般是 MIC 上行语音给设备端,做语音识别功能,如科大讯飞、百度语音、谷歌语音平台,做为语音助手的语音上传使用。
遥控器的单向语音功能,可以用来录音、也可以用来做语音识别。

语音识别方案,一般表现为:
1)、遥控器有 Mic 拾音口,这是要求模具具备 MIC 口;
2)、遥控器有一个语音控制键,按下此键,遥控器发一次 HID 码数据给设备,并打开语音功能,LED保持闪烁或者长亮提示,开始拾音,上传USB audio数据给设备。语音通过USB audio上传给设备后,遥控器完成本分工作。松开按键,关闭语音功能。
设备端,接收到 HID 码后,打开语音助手界面,并开始识音(解析 USB audio 数据成为相应的文本或命令等)。最终的目的是把用户的语音识别为文字、字母等,并进行命名设备端在线搜索关键词或者打开应用功能。
在这里插入图片描述
以上为一个完整的语音控制。语音输入为遥控器负责,往后则是设备端进行识别。
总之,遥控器单方面是无法完成语音控制的,语音控制是属于设备端解析遥控器上传的语音信号转成文字命令后,执行对应的操作。
只能说遥控器可以实现语音信号(USB AUDIO信号,为数字信号)上传,可以被具有智能语音的设备端识别出正确的文字,设备端用来做语音搜索或者语音控制。信号,为数字信号)上传,可以被具有智能语音的设备端识别出正确的文字,设备端用来做语音搜索或者语音控制。
语音识别要求,其实语音采样率 8KB/8bit 要求是可以满足的,而如果是 K 歌使用,则预计需要使用高音质的,48K 的频段方案。
著名语音识别厂商有:微软、苹果、谷歌、科大讯飞、思必驰、百度、nuance 等。语音录音,一般表现为:1)、遥控器有一个语音功能开关键,按一下此键,或者长按此键 3s,打开单向语音功能,LED 保持闪烁或者长亮提示,上传 USB audio 数据。设备端,把 USB audio 数据存储。
(上述文章阐述归伦茨科技公司所有,转载请注明出处,更多相关信息欢迎关注微信公众号:lenze_tech)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ble audio补丁原理是利用hidraw节点捕捉协议栈发送的语音数据,目前Android Blueroid将ble语音数据和按键信息通过hid发送出去,通过建立hidraw节点,可以从中捕捉到语音数据。目前通过ble hal实现从hidraw中读取遥控器语音数据,在Android框架层上就通过配置文件将ble hal导入到音频框架中,并通过绑定Android原生已有的耳麦设备来完成audio音频策略选择,通过apk检测ble连接状态,通知audio服务耳麦设备的状态就可以使得录音通路切换至ble hal,实现从ble获取录音数据功能。 打补丁前最好使用干净的环境,不要有别家方案ble补丁,否则可能会有不兼容问题。 补丁如若不能使用首先检查节点是否存在和其权限,正常节点权限如下: ls -l /dev/hidraw* crw-rw---- 1 system audio 241, 0 2018-12-18 13:42 /dev/hidraw0 audio用户组有读写权限。 2、如果selinux模式为Enforcing,可以通过logcat搜索avc关键字。有如下类似提示则为异常,提示进程没有权限,检查sepolicy是否设置正常: avc: denied { read } for name="/" dev="tmpfs" ino=6145 scontext=u:r:mediaserver:s0 tcontext=u:object_r:device:s0 tclass=dir permissive=0 //Android 5.0和6.0版本,audio hal被mediaserver进程加载 avc: denied { read } for name="/" dev="tmpfs" ino=8125 scontext=u:r:audioserver:s0 tcontext=u:object_r:device:s0 tclass=dir permissive=0 //Android 7.0版本,audio hal被audioserver进程加载 avc: denied { read } for name="hidraw" dev="sysfs" ino=16332 scontext=u:r:hal_audio_default:s0 tcontext=u:object_r:sysfs:s0 tclass=dir permissive=0 //Android 8.0和9.0版本,audio hal被android.hardware.audio@2.0-service进程加载 3、检查audio的配置,打上patch后,首先确认小机上文件是否有修改到,目前文件可能位于/vendor/etc或/system/etc目录下,其中/vendor/etc下的配置文件是优先解析的。确保文件无误后,通过dumpsys media.audio_policy查看ble hal是否正常加载。 以下是相关说明: AudioPolicyManager: 0xf20c5200 Command Thread: 0xf20af140 Tones Thread: 0xf20af020 ... - Available input devices: Device 1: - id: 3 - type: AUDIO_DEVICE_IN_BUILTIN_MIC - Profiles: Profile 0: - format: AUDIO_FORMAT_PCM_16_BIT - sampling rates:8000, 11025, 12000, 16000, 22050, 24000, 32000, 44100, 48000 - channel masks:0x000c, 0x0010 Device 2: - id: 20 - type: AUDIO_DEVICE_IN_WIRED_HEADSET //对应的数值是0x80000010 - name: RemoteDM1204 - Profiles: Available input devices指示当前可用设备,目前ble hal是和AUDIO_DEVICE_IN_WIRED_HEADSET设备绑定,如果需要录音走ble hal,AUDIO_DEVICE_IN_WIRED_HEADSET设备必须出现在可用设备中,如果没有,就可能是补丁中hidaudio.apk的问题。 HW Modules dump: ... - H
本文在阐述了嵌入式语音识别原理和红外遥控技术的基础上,介绍了一种非常适合进行嵌入式语音处理的单片机—凌阳SPCE061A微控制器,并且通过运用此控制器数字语音处理功能和红外遥控技术设计出一种新型的基于语音控制的万能遥控器。 本设计有如下特点: 一、有别于采用专用集成发射芯片来实现遥控码发射的传统遥控器,而是采用微控制器模拟发射红外遥控码,具有灵活性和多样性。 二、能够利用微控制器接收和分析红外遥控码,并可以保存遥控码的信息特征,以便重新发射相同功能的遥控码,具有智能性。 三、该设计依据特定人语音识别原理,将经过处理的输入语音的特征参数作为未知模式,与预先存储的标准模式进行比较,通过调用SPEC061A的C函数库和语音处理函数库中的函数来实现语音识别、处理与控制,并采用SACM _480语音编码算法播放提示语音。与组成系统复杂、编程难、价格高的处理语音信号的专用芯片相比,开发人员只需应用SPEC061A的处理语音信号的API接口函数,缩短了开发周期。 该遥控器语音命令来替代普通遥控器的按键功能,弥补了目前遥控器人机交互界面和功能单调的缺陷,提供了更友好、更人性化的操作方式,同时利用此系统的学习功能使得该遥控器具有“一器多用”的功能。 最后,在结论中提到系统功能的扩展,利用SPCE061A内部的丰富资源,在不增加成本的前提下,嵌入其他常用功能,具有升级性好、性价比高的优点。
时下智能语音交互市场火热,越来越多的设备都开始支持远场AI语音交互。 例如:智能音箱,智能电视等等。但这类产品的识别率和误唤醒率还需再不断的优化提升,以至于日常生活中人们还是离不开各式各样的遥控器。而蓝牙语音遥控器这一产品,作为远场语音交互的一个近场配件,也搭上了这趟语音交互的快速列车,成长速度令人惊讶。基于Actions炬芯的ATB1103芯片的语音遥控器,打造了一个AIoT时代的高性价比精品。 一、遥控器应用总体架构 遥控器总体架构分四层,从上到下依次为应用层、应用框架层、硬件抽象层、底层驱动层 1.1、应用层 • 应用状态机– 事件触发让遥控器应用处理不同的状态 • 应用定时器– 定时触发不同的事件,驱动遥控器正常运行 • 应用输入处理– 处理底层来的不同按键消息 • 应用音频输入处理– 将底层的音频处理消息,进行编码,然后通过蓝牙发送给对端设备 • BLE profile – HID profile,提供按键输入输出接口服务 – BAS service,提供电池服务 – DIS service,提供读取设备基本信息的接口服务 – ota profile,提供OTA 升级服务 1.2、应用框架层 • 输入管理– 按键映射处理、按键过滤机制 • 消息管理– 消息分配和释放、 消息发送和接收 • 内存管理– 动态内存管理 • 闪灯管理– 灯资源分配和释放 • 电池管理– 电量读取、电量管理策略 1.3、硬件抽象层 将应用层和驱动层剥离开的中间件层 1.4、底层驱动层 底层硬件操作接口 二、遥控器模块流程概述 2.1、系统启动 系统相关初始化、板级相关外设初始化、蓝牙协议栈相关初始化、HidApp 应用初始化,并进入Main 主循环,等待消息处理 2.2、遥控器状态机 遥控器在运行过程中,主要靠如下3 种状态维持他的正常运行。 2.2.1. 触发遥控器进去空闲状态的事件: > 广播状态,没有连接成功,出现超时事件,进入idle > 连接状态,断开连接,如无操作主动断开连接,然后进入idle 2.2.2. 触发遥控器进入激活状态的事件: > 空闲状态,有按键、首次上电,进入激活状态 > 连接状态,出现异常断开,需要回连,进入激活状态 2.2.3. 触发遥控器进入工作状态的事件: > 激活状态下,配对成功或者回连成功,进入工作状态。 2.3、按键处理 由于遥控器的键值较多,通常用矩阵键盘方式以节省pin 的使用。当使能Key 模块后,Key 控制器就会处于矩阵扫描状态,当检测到外部按键有值时,就会产生中断,中断就将按键信息上报给应用。 2.4、红外处理 • 在非连接状态下,按下按键,就会发射红外码,进而通过红外操作对端设备,如使用红外进行配对. • IRC 协议上,最短的红外码重发时间为108 ms,而按键的重复上报时间,可能小于108ms,也可能大于108ms,因此按键输入和红外发送模块时间上存在三种可能: 2.4.1. 慢速点按 慢速点按动作特征是在大于Trpc 时间后有多次的按键输入。在Ta 时刻,发出初次按键值,在Tb 时刻,不做任何响应,在Tc 时刻,继续发送检测到的按键值,不会发送重复码. 2.4.2. 快速点按 快速点按的动作特征是用户在Trpc 时间内有两次或者以上的按键按下弹起的动作. 在Ta 时刻,将发送出初次按键,而Tb 时刻并不发送按键值,在Tc 时刻,如果按键仍然是按下状态,将发出按键值,否则将丢掉按键值. 2.4.3. 长按 长按的动作特征是按键按下后,一直不放开。此时CPU 检测到按键的持续按下,则在Ta 时刻发送出初次按键,发送出此时按键对应的红外键码,而在Trpc 时间内没有检测到按键的松开,则在Tb 时间输出重复码,直至检测到按键弹起为止. 2.5、语音采集 • 当启动Voice Key 后,ADC 开始采集 • 采集的数据通过DMA 搬运到应用的循环buffer 中,同时发送消息给Main 线程,让其处理语音数据。 • 如果Main 线程处理速度不够快,audioin 驱动就会因为分不到buffer,而将采集的语音数据丢弃。 2.6、BLE数据传送 • 将audioin 驱动发送上来的数据进行编码压缩。 • 然后将编码后的压缩数据切成几个20byte 的数据包 • 最后通过hid profile notify 接口发送给BLE 协议栈 2.7、应用软件Timer管理模块 2.8、LED管理模块 遥控器定义了几种LED 指示灯,用于指示遥控器的一些状态,如下表所示 通常遥控器只有一个物理的LED 灯用于各种场景的指示,这就需要软件上让其分时复用,如果同时需要显示两种状态,状态需要定义优先级,优先级高的状态先指示。如在配对模式下,处于闪灯状态下,这时候按下按键,那么灯还是处于快闪状态。 2.9、O
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值