1. 引言
多人组网蓝牙对讲耳机可用来组建小型即时通讯网络,广泛应用于小型车队通讯等使用场景。形态以蓝牙头盔耳机为主,厂商一般是欧美和台湾。
2. 主要功能
4个人全双工语音对讲、 通话和听音乐,自动切换、OTA升级、语音助手、支持cVc降噪和回声消除等
场景应用图:
四人对讲系统框图:
四人对讲时,每台耳机与最多2个设备相连,组成队列。首尾两部耳机可以与手机等其他蓝牙发射器通过蓝牙连接,可拨打电话、听音乐等。
3. 方案核心部分
方案的核心部分有三个,即配对、组网、dsp处理。
第一就是配对。蓝牙对讲耳机之间的发现、配对和连接过程与手机和普通蓝牙耳机之间的配对过程并无很大区别。由于此方案支持shareme功能,因此sink例程中可以找到扫描和连接其他sink设备的api(参考sink_inquiry.c)。当主设备进入inquiry模式后,从设备进入conndisc模式,主设备找到从设备后发起连接请求即可完成配对。这里要注意主设备可能会连接到其他非蓝牙对讲耳机的设备,因此需要在inquiry过程中对搜索到的设备进行filter。filter条件可以是设备名称或设备所支持的profile类型。在本项目中采用了后一种方式。
第二就是组网。此方案支持同时连接最多两个设备,因此可以通过级联的方式将耳机串联起来。其实ADK中已经给出了一个可参考的应用框架,即TWC功能(three way conference),只是缺少了专门的dsp处理。
第三就是dsp处理,也是整个项目的核心难点。全双工对讲的难处在于,既要让别人听到自己的声音,又不能在本地听到自己的声音,还要让别人听到的声音较清晰且延迟低,同时还要考虑降低环境噪声等问题。这些问题涉及到数字信号处理、kalimba dsp编程等知识,因篇幅有限不在此详细展开。
4. 结论
该方案借用高通平台的基础上,可以继续深入开发,例如导航混音、4人以上蓝牙对讲等,甚至可以集成AVS语音助手等流行功能。同时优化成本问题。
/*!
\copyright Copyright (c) 2019 - 2020 Qualcomm Technologies International, Ltd.
All Rights Reserved.
Qualcomm Technologies International, Ltd. Confidential and Proprietary.
\version %%version
\file headset_ui.c
\brief Headset application User Interface Indications
*/
#include "headset_ui.h"
#include "ui.h"
#include "led_manager.h"
#include "logging.h"
#include "headset_sm.h"
#include "headset_leds_config_table.h"
#include "headset_prompts_config_table.h"
#include "headset_tones_config_table.h"
#include <power_manager.h>
#include <ui_indicator_prompts.h>
#include <ui_indicator_tones.h>
bool HeadsetUi_Init(Task init_task)
{
UNUSED(init_task);
UiPrompts_SetPromptPlaybackEnabled(TRUE);
UiTones_SetTonePlaybackEnabled(TRUE);
#ifdef INCLUDE_PROMPTS
UiPrompts_SetPromptConfiguration(
headset_ui_prompts_table,
HeadsetPromptsConfigTable_GetSize());
#endif
#if INCLUDE_TONES