一种新型的移动互联网交互方式----声波中距离传输
1 项目背景与介绍
众所周知,图像二维码在国内随处可见,被用到了极致,信息分享、个人账号登录、签到等等,能够方便有效的进行信息透传,给大家带来了诸多的便利。那么在移动互联网手机硬件各种传感器中,还有哪些非网络的传感器可以进行信息传递呢?
声波中距离传输,用声音来传递信息,达到数据传递的目的。只需要有声音播放与录制功能的设备之间即可传递信息,不局限手机与手机之间,比如ipad、手机、电视、广告牌等等;
2 声波传输算法详解
声波传输,主要分为数据编码、合成声音信号、播放声源、录制声源、声波识别、数据译码,最终得到被传输的二进制数据。
2.1 数据编码与声波播放
2.1.1 数据编码
传输有用的二进制数据,对二进制数据进行编码与加密操作,同时增加对应的crc校验码,最终组成对应的传输码流。
2.1.2 声波信号合成
对进行加密后的二进制码流,生成对应的可以播放的声波信号。这里利用人耳感知模型,将加密的二进制数据隐藏在声波中,并随同声波进行传递信息。人耳感知模型--绝对掩蔽阈值,如下图所示:
声音信号在空气中传播,呈现的是时间幅度信号。另外,人耳听到的声音可以从频域上进行区分,如常见的低音炮、男中音、女高音,都是指不同频率。人耳对于不同频率的感知敏感度不一致,经过人们长期研究发现,如上图所示,横轴为人耳感知的频率,纵轴为不同频率的声音响度,也可以通过以下公式得到:
2.1.3 混音模块
通过人耳感知模型生成的声波信号,与背景音乐进行混音,这里存在将背景音乐的格式与声波信号格式统一的过程,因此需要进行滤波、重采样、混音操作,流程如下:
2.2 声波识别与解码
2.2.1 基于隐马尔科夫模型的声波识别
声音在空气中传输,由于受到外界噪音、喇叭播放与麦克风录制的干扰,最终录制得到的声音信号的频域特征一定程度上产生了衰减与变化。因此采用隐马尔科夫模型HMM进行声波的识别与解码。
隐马尔可夫模型(Hidden Markov Model,HMM)是统计模型,它用来描述一个含有隐含未知参数的马尔可夫过程。其难点是从可观察的参数中确定该过程的隐含参数。然后利用这些参数来作进一步的分析,例如模式识别。
在正常的马尔可夫模型中,状态对于观察者来说是直接可见的。这样状态的转换概率便是全部的参数。而在隐马尔可夫模型中,状态并不是直接可见的,但受状态影响的某些变量则是可见的。每一个状态在可能输出的符号上都有一概率分布。因此输出符号的序列能够透露出状态序列的一些信息。如下图所示,其中:
x为隐含状态,这里可以认为是每个频带特征;
y为最终确定的频带特征;
a为转换概率,即:识别到某一频带特征x1,实际上为x2的概率;
b为输出概率,即:确定为某一频带x1,最终输出成y1的概率。
图 HMM状态转移图
隐马尔科夫模型的概率计算公式,可以列为:
假设最终输出的结果为Y = y(0), y(1), …, y(L-1);
隐藏条件为X = x(0), x(1), … , x(L-1);
长度为L,L为频带个数,则马可夫模型的概率可以表达为:
HMM有三个典型问题:
1)已知模型参数,已知大概的状态转移概率,计算某一特定输出序列的概率.通常使用forward算法解决.
2)已知模型参数,寻找最可能的能产生某一特定输出序列的隐含状态的序列.通常使用Viterbi算法解决.
3)已知输出序列,寻找最可能的状态转移以及输出概率.通常使用Baum-Welch算法以及Reversed Viterbi算法解决.
本次设计符合三种典型问题中第一种,即已知模型参数,已知状态转移概率,计算输出序列的概率,从而确定最终的输出,达到提高抗干扰性,以及提高识别准确度。
3. 算法效果以及优缺点
通过空气中声波传输数据,可以在1~2s传输数十亿量级的数据(4byte=32bit数据),且识别时间的稳定度较高,超过2s的识别仅仅占5%。传输数据可达到10米,甚至更远。可用于单对单、单对多广播式数据传递。
3.1 算法效果:
下图是用mac播放声波,三星s6手机进行识别,分别在咖啡厅、公交站、地铁站等场合进行的测试,测试数据超过1000次。横轴为mac与手机之间的距离,单位为米;纵轴为识别到数据所用的平均时间,单位为秒s。
图 不同环境下不同距离的识别声波的平均时间
识别数据的时间稳定性,从其中1米的识别测试结果来看,如下图,对测试1000次的结果重新按照识别时间先后排序,得到如下所示,可以看到超过2s的识别仅仅占5%。
图 测试1000次识别时间的重新排序图
3.2 声波优缺点
优点:
- 只要具备麦克风与播放设备,均可以进行信息透传;
- 信息通过空气传输,抗干扰能力强,一般室外室内环境均不受影响;
- 可快速传递信息,可在数秒时间内传输完成;
- 与正常的声音相对独立,可以将声波隐藏到音乐中,不占信道。
- 可1对多进行传递,传输距离可达10米。
缺点:
- 传输数据长度有限,10米可传输8byte(=2^64);1米传输可达到32bytes(=2^(32*8))数据量。
- 传输距离有限,只能大概10米左右。
- 在同一个10米范围内,声波播放源不能同时存在2个或者多个,识别端只能识别出距离较近的声源。
- 只能1对多,不能指定某一个对象进行传递;
- 暂时版本不支持同时双向传输数据,即同一时间同一个设备不能同时作为识别端与播放源。
PS: 欢迎有兴趣的同学来一起讨论!