一种基于耳机实现左右声正常输出的方法及系统的制作方法

文档序号:10597639阅读:579来源:国知局
一种基于耳机实现左右声正常输出的方法及系统的制作方法
【专利摘要】本发明公开一种基于耳机实现左右声正常输出的方法及系统,所述方法包括步骤:当耳机插入到智能终端后,通过设置在耳机上的方向传感器实时获取当前耳机的坐标数据,并将所述坐标数据上传给控制模块;所述控制模块对获取的所述坐标数据进行解析,得到当前耳机的角度数据;根据所述角度数据判断输出高电平或低电平,当输出高电平时,控制多路开关进行左右声道的切换;当输出低电平时,则不进行左右声道的切换处理。通过本发明可实现无论用户是否戴反耳机,均能够准确听到左右声道的声音,给用户带来极佳的听觉体验。
【专利说明】
一种基于耳机实现左右声正常输出的方法及系统
技术领域
[0001]本发明涉及耳机领域,尤其涉及一种基于耳机实现左右声正常输出的方法及系统。
【背景技术】
[0002]随着社会发展越来越快,互联网技术以及与电子技术的结合程度越来越高。手机以及便携式装置普及度越来越高,多媒体功能是消费电子设备用户使用最多的一种应用,怎样提高用户体验,以及用户感受成为了每个厂家都需要考虑的问题。音视频是一个系统设计,很多厂家只限于在自己本产品的基础上使用更加好的器件,花更高成本的配件进行提高听赏感受,改善音质,然而提高音频测试各种指标都是后端设计非常复杂的系统工程。
[0003]目前业内更多将音效设置的功能设置在多媒体终端设备上,而对于耳机则始终停留在ID以及听感上的改进和优化,然而这些改进后的耳机还是属于传统耳机的范畴。这些传统耳机在插入到多媒体终端设备上后,并不具有切换左右声道的功能,因此容易导致用户在使用这些耳机时出现左右耳戴反的情况,从而影响音质的输出效果。
[0004]因此,现有技术还有待于改进和发展。

【发明内容】

[0005]鉴于上述现有技术的不足,本发明的目的在于提供一种基于耳机实现左右声正常输出的方法及系统,旨在解决现有耳机不具有切换左右声道的功能,容易导致用户在使用时出现左右耳戴反的情况,从而影响音质输出效果的问题。
[0006]本发明的技术方案如下:
一种基于耳机实现左右声正常输出的方法,其中,包括步骤:
A、当耳机插入到智能终端后,通过设置在耳机上的方向传感器实时获取当前耳机的坐标数据,并将所述坐标数据上传至所述耳机上的控制模块;
B、所述控制模块对获取的所述坐标数据进行解析,得到当前耳机的角度数据;
C、根据所述角度数据判断输出高电平或低电平,当输出高电平时,控制设置在所述耳机上的多路开关进行左右声道的切换;当输出低电平时,则不进行左右声道的切换处理。
[0007]较佳地,所述基于耳机实现左右声正常输出的方法,其中,所述步骤A之前还包括:A00、当耳机插入到智能终端后,对控制模块、方向传感器以及电源管理器进行初始化处理;
AOl、所述控制模块实时监测MIC脚电压并根据监测结果切换模式,当监测到所述MIC脚电压为1.8V时,所述电源管理器切换成充电模式给耳机供电;当监测到所述MIC脚电压为
2.5V时,所述电源管理器切换成通路控制模式对多路开关进行控制。
[0008]较佳地,所述基于耳机实现左右声正常输出的方法,其中,所述步骤C具体包括:
Cl、当当前耳机的角度数据大于0°时,输出高电平,控制多路开关进行左右声道的切换; C2、当当前耳机的角度数据小于0°时,输出低电平,则不进行左右声道的切换处理。
[0009]—种基于耳机实现左右声正常输出的系统,其中,包括:
坐标数据获取上传模块,用于当耳机插入到智能终端后,通过设置在耳机上的方向传感器实时获取当前耳机的坐标数据,并将所述坐标数据上传给控制模块;
控制模块,用于对获取的所述坐标数据进行解析,得到当前耳机的角度数据;
声道切换模块,用于根据所述角度数据判断输出高电平或低电平,当输出高电平时,控制多路开关进行左右声道的切换;当输出低电平时,则不进行左右声道的切换处理。
[0010]较佳地,所述基于耳机实现左右声正常输出的系统,其中,还包括:
初始化模块,用于当耳机插入到智能终端后,对控制模块、方向传感器以及电源管理器进行初始化处理;
电源管理器切换模块,用于所述控制模块实时监测MIC脚电压并根据监测结果切换模式,当监测到所述MIC脚电压为1.8V时,所述电源管理器切换成充电模式给耳机供电;当监测到所述MIC脚电压为2.5V时,所述电源管理器切换成通路控制模式对多路开关进行控制。
[0011]较佳地,所述基于耳机实现左右声正常输出的系统,其中,所述声道切换模块包括:
高电平输出单元,用于当当前耳机的角度数据大于χ°时,输出高电平,控制多路开关进行左右声道的切换;
低电平输出单元,用于当当前耳机的角度数据小于Y。时,输出低电平,则不进行左右声道的切换处理。
[0012]有益效果:当使用耳机听音乐或语音时,声场最佳的时候就是左耳朵可以听到左声道声音,右耳朵可以听到右声道的声音,本发明通过对方向传感器获取的坐标数据进行解析获得当前耳机的角度数据,根据当前耳机的角度数据判断耳机是否戴反了,当是时则输出高电平,控制多路开关进行左右声道的切换,使用户无论是否戴反耳机,均能够准确听到左右声道的声音,给用户带来极佳的听觉体验。
【附图说明】
[0013]图1为本发明一种基于耳机实现左右声正常输出的方法较佳实施例的流程图。
[0014]图2为本发明一种耳机内部结构较佳实施例的示意图。
[0015]图3为本发明一种基于耳机实现左右声正常输出的系统较佳实施例的结构框图。
【具体实施方式】
[0016]本发明提供一种基于耳机实现左右声正常输出的方法及系统,为使本发明的目的、技术方案及效果更加清楚、明确,以下对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0017]请参阅图1,图1为本发明一种基于耳机实现左右声正常输出的方法较佳实施例的流程图,如图所示,其包括步骤:
S100、当耳机插入到智能终端后,通过设置在耳机上的方向传感器实时获取当前耳机的坐标数据,并将所述坐标数据上传给控制模块;
S110、所述控制模块对获取的所述坐标数据进行解析,得到当前耳机的角度数据; S120、根据所述角度数据判断输出高电平或低电平,当输出高电平时,控制多路开关进行左右声道的切换;当输出低电平时,则不进行左右声道的切换处理。
[0018]在本发明实施例中,本发明通过对方向传感器获取的坐标数据进行解析获得当前耳机的角度数据,根据当前耳机的角度数据判断耳机是否戴反了,当是时则输出高电平,控制多路开关进行左右声道的切换,使用户无论是否戴反耳机,均能够准确听到左右声道的声音,给用户的使用带来极佳的听觉体验。
[0019]在本发明所述步骤SlOO中,当耳机插入到智能终端后,通过设置在耳机上的方向传感器实时获取当前耳机的坐标数据,并将所述坐标数据上传给控制模块。
[0020]具体地,所述方向传感器设置在耳机上,所述方向传感器是通过一个长度为3的float数组去表示耳机的位置信息的,即本发明获取到的当前耳机坐标数据为一个三维坐标,其中所述float数组的第一个元素(Z轴)表示指向地心的方位角,所述float数组的第二元素(X轴)表示由静止状态开始前后翻转的俯仰角,所述float数组的第三元素(Y轴)表示由静止状态开始左右翻转的翻转角。通过所述方向传感器获取坐标数据的具体原理为现有技术,在此不做详细阐述。
[0021]在步骤SllO中,所述控制模块对获取的所述坐标数据进行解析,得到当前耳机的角度数据。具体地,本发明通过如下算法解析获取当前耳机的角度数据:
首先通过下述代码获取方向角矩阵数组: getRotat1nMatrix(float[] R, float[] I,
f1at[] gravity, f1at[] geomagnetic) {
Il T0D0: move this to native code for efficiency float Ax = gravity[0]; float Ay = gravity[l]; float Az = gravity[2]; final float Ex = geomagnetic[0]; final float Ey = geomagnetic[l]; final float Ez = geomagnetic[2]; float Hx = Ey氺Az _ Ez氺Ay; float Hy = Ez^Ax _ Ex^Az; float Hz = Ex^Ay _ Ey^Ax;
final float normH = (float)Math.sqrtCHx^Hx + Hy^Hy + Hz^Hz); if (normH < 0.1f) {
Il device is close to free fall (or in space), or close toIl magnetic north pole.Typical values are > 100.return false;
}
final float invH = 1.0f / normH;
Hx *= invH;
Hy 氺=invH;
Hz *= invH; final float invA = 1.0f / (float)Math.sqrt(Ax^Ax + Ay^Ay + Az^Az);
Ax *= invA;
Ay 氺=invA;
Az *= invA;
final float Mx = Ay*Hz - Az^Hy; final float My = Az*Hx - Ax^Hz; final float Mz = Ax^Hy - Ay^Hx; if (R != null) {
if (R.length == 9) {
R[0] = Hx; R[l] = Hy; R[2] = Hz;
R[3] = Mx; R[4] = My; R[5] = Mz;
R[6] = Ax; R[7] = Ay; R[8] = Az;
} else if (R.length == 16) {
R[0] = Hx; R[l] = Hy; R[2] = Hz; R[3] = 0;
R[4] = Mx; R[5] = My; R[6] = Mz; R[7] = 0;
R[8] = Ax; R[9] = Ay; R[10] = Az; R[ll] = 0;
R[12] = 0; R[13] = 0; R[14] = 0; R[15] = I;
}
}
if (I != null) {
接着计算倾斜投影矩阵的地磁矢量:
final float invE = 1.0f / (float)Math.sqrt(Ex^Ex + Ey氺Ey + Ez氺
Ez);
final float c = (Ex^Mx + Ey^My + Ez*Mz) * invE;final float s = (Ex氺Ax + Ey氺Ay + Ez氺Az)氺 invE;if (1.length == 9) {
I[0] = I; I[l] = 0; I[2] = 0;
I[3] = 0; I[4] = c; I[5] = s;
I[6] = 0; I[7] =-s; I[8] = c;
} else if (1.length == 16) {
I[0] = I; I[l] = 0; I[2] = 0;
I[4] = 0; I[5] = c; I[6] = s;
I[8] = 0; I[9] =-s; I[10]= c;
I[3] = I[7] = I[ll] = I[12] = I[13] = I[14] = 0;
I[15] = I;
}
}
return true;
} 最后计算当前耳机的方向角: calculateOrientat1n() {
float[] values = new float[3];float[] R = new float[9];
具体地,首先通过地磁数值和加速度数值,获取角度矩阵数组R以及倾角矩阵1: getRotat1nMatrix
boolean getRotat1nMatrix (float[] R, float[] I, float[] gravity, float[] geomagnetic)
所述耳机的向量坐标系统定义为一个直接正交基,其中在世界坐标系中,X定义为向量积Y.Z,它是指在耳机的当前位置相切于地面并指向东;Y是指在耳机的当前位置相切于地面并朝向磁北极指向;Z是指指向天空并垂直于地面。
[0022]根据定义:[O O G] = R *重力(G =重力的大小);[0 M O] = I * R *地磁(M =地球磁场的大小);R为单位矩阵时,当设备的X轴点向东,Y轴指向北极,Z轴对着天空的设备与世界坐标系对齐,也就是说,I是旋转矩阵变换地磁载体引入重力相同的坐标空间(世界坐标空间);弧度的倾斜角度可以getIncI inat1n计算(浮动[])。
[0023]每个矩阵返回可能为长度为3 X 3或4 X 4行主矩阵:
如果数组长度为16:
/ M [O] M [I] M [2] M [3] \ | M [4] M [5] M [6] M [7] | | M [8] M [9] M
[10]M [11] I \ M [12] M [13] M [14] M [15] / 这个矩阵是准备通过的OpenGL ES的glLoadMatrixf使用计算(浮动[],INT)。
[0024]需要注意的是,因为OpenGL的矩阵列为主的矩阵,必须在使用之前转置矩阵。然而,由于该矩阵是旋转矩阵,它的转置也是它的逆,为方便计算,需要用于呈现旋转的逆;因此可以直接采用OpenGL ES。
[0025]还要注意的是返回的矩阵可能是下面这种形式:
/ M [0] M [I] M [2] O \ I M [4] M [5] M [6] O | | M [8] M [9] M [10] O\ O O O I /
如果数组长度为9:
/ M [0] M [I] M [2] \ I M [3] M [4] M [5] | \ M [6] M [7] M [8] / 每个矩阵的逆可以很容易地通过取它的转置来计算。
[0026]SensorManager.getRotat1nMatrix(R, null, accelerometerValues,magneticFieldValues);
通过上述代码,基于旋转矩阵计算当前耳机的方向;
SensorManager.getOrientat1n(R, values);
从弧度到角度的转换采用的是度数测量的近似角度; values[0] = (float) Math.toDegrees(values[0]);
Log.1(TAG, values[0] +
通过上述代码获取当前耳机的正负角度数据;if (values[0] >0) {
此时耳机角度为正值,表示即佩戴正确,控制模块发送低电平给多路开关,不用切换左右声音通路;
} else if (values[0] 〈0) {
此时耳机角度为负值,表示佩戴耳机反向,控制模块发送高电平给多路开关,切换左右声音通路。
[0027]}
}
在所述步骤S120中,根据所述角度数据判断输出高电平或低电平,当输出高电平时,控制多路开关进行左右声道的切换;当输出低电平时,则不进行左右声道的切换处理。具体地,当当前耳机的角度数据大于0°时,输出高电平,控制多路开关进行左右声道的切换;当当前耳机的角度数据小于0°时,输出低电平,则不进行左右声道的切换处理。
[0028]进一步,在本发明所述步骤SlOO之前还包括:
S10、当耳机插入到智能终端后,对控制模块、方向传感器以及电源管理器进行初始化处理;
S20、所述控制模块实时监测MIC脚电压并根据监测结果切换麦克风通路模式,当监测到所述MIC脚电压为1.8V时,所述麦克风通路切换成充电模式给耳机供电;当监测到所述MIC脚电压为2.5V时,所述麦克风通路切换成通路控制模式对多路开关进行控制。
[0029]具体地,如图2所示,本发明中的耳机I包括控制模块2、电源管理器3、方向传感器
4、多路开关5、左右耳塞6,所述方向传感器4通过I2C总线与控制模块2进行连接,所述控制模块2还分别与电源管理器3以及多路开关4连接,所述多路开关4通过两条电线分别与左右耳塞6连接。
[0030]进一步,所述控制模块是指上是一个低功耗的MCU,其作用包括:用来调节音乐信号通话与音效好的音量大小;用来控制麦克风通路从充电模式切换成通路控制模式;用来控制耳机上其它单元的硬件初始化。
[0031]更进一步,所述电源管理器主要用来对耳机中的各个模块进行供电管理,包括给耳机电池模块充电以及通话时对麦克脚电压进行切换管理。
[0032]具体地,当耳机2插入到智能终端7后,方向传感器4进行初始化,并开始捕捉当前耳机的三维坐标数据,所述控制模块2根据对所述三维坐标数据进行分析判断是否输入高、低电平,从而控制多路开关5进行左右声道的切换。
[0033]基于上述方法,本发明还提供基于耳机实现左右声正常输出的系统,如图3所示,其包括:
坐标数据获取上传模块100,用于当耳机插入到智能终端后,通过设置在耳机上的方向传感器实时获取当前耳机的坐标数据,并将所述坐标数据上传给控制模块;
解析模块110,用于所述控制模块对获取的所述坐标数据进行解析,得到当前耳机的角度数据;
声道切换模块120,用于根据所述角度数据判断输出高电平或低电平,当输出高电平时,控制多路开关进行左右声道的切换;当输出低电平时,则不进行左右声道的切换处理。
[0034]所述基于耳机实现左右声正常输出的系统,其中,还包括: 初始化模块10,用于当耳机插入到智能终端后,对控制模块、方向传感器以及电源管理器进行初始化处理;
电源管理器切换模块20,用于所述控制模块实时监测MIC脚电压并根据监测结果切换模式,当监测到所述MIC脚电压为1.8V时,所述电源管理器切换成充电模式给耳机供电;当监测到所述MIC脚电压为2.5V时,所述电源管理器切换成通路控制模式对多路开关进行控制。
[0035]所述基于耳机实现左右声正常输出的系统,其中,所述声道切换模块120包括:
高电平输出单元121,用于当当前耳机的角度数据大于X°时,输出高电平,控制多路开关进行左右声道的切换;
低电平输出单元122,用于当当前耳机的角度数据小于Y。时,输出低电平,则不进行左右声道的切换处理。
[0036]综上所述,当使用耳机听音乐或语音时,声场最佳的时候就是左耳朵可以听到左声道声音,右耳朵可以听到右声道的声音,本发明通过对方向传感器获取的坐标数据进行解析获得当前耳机的角度数据,根据当前耳机的角度数据判断耳机是否戴反了,当是时则输出高电平,控制多路开关进行左右声道的切换,使用户无论是否戴反耳机,均能够准确听到左右声道的声音,给用户带来极佳的听觉体验。
[0037]应当理解的是,本发明的应用不限于上述的举例,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,所有这些改进和变换都应属于本发明所附权利要求的保护范围。
【主权项】
1.一种基于耳机实现左右声正常输出的方法,其特征在于,包括步骤: A、当耳机插入到智能终端后,通过设置在耳机上的方向传感器实时获取当前耳机的坐标数据,并将所述坐标数据上传给控制模块; B、所述控制模块对获取的所述坐标数据进行解析,得到当前耳机的角度数据; C、根据所述角度数据判断输出高电平或低电平,当输出高电平时,控制多路开关进行左右声道的切换;当输出低电平时,则不进行左右声道的切换处理。2.根据权利要求1所述基于耳机实现左右声正常输出的方法,其特征在于,所述步骤A之前还包括: A00、当耳机插入到智能终端后,对控制模块、方向传感器以及电源管理器进行初始化处理; AOl、所述控制模块实时监测MIC脚电压并根据监测结果切换模式,当监测到所述MIC脚电压为1.8V时,所述电源管理器切换成充电模式给耳机供电;当监测到所述MIC脚电压为2.5V时,所述电源管理器切换成通路控制模式对多路开关进行控制。3.根据权利要求1所述基于耳机实现左右声正常输出的方法,其特征在于,所述步骤C具体包括: Cl、当当前耳机的角度数据大于x°时,输出高电平,控制多路开关进行左右声道的切换; C2、当当前耳机的角度数据小于Y。时,输出低电平,则不进行左右声道的切换处理。4.一种基于耳机实现左右声正常输出的系统,其特征在于,包括: 坐标数据获取上传模块,用于当耳机插入到智能终端后,通过设置在耳机上的方向传感器实时获取当前耳机的坐标数据,并将所述坐标数据上传给控制模块; 解析模块,用于所述控制模块对获取的所述坐标数据进行解析,得到当前耳机的角度数据; 声道切换模块,用于根据所述角度数据判断输出高电平或低电平,当输出高电平时,控制多路开关进行左右声道的切换;当输出低电平时,则不进行左右声道的切换处理。5.根据权利要求4所述的基于耳机实现左右声正常输出的系统,其特征在于,还包括: 初始化模块,用于当耳机插入到智能终端后,对控制模块、方向传感器以及电源管理器进行初始化处理; 电源管理器切换模块,用于所述控制模块实时监测MIC脚电压并根据监测结果切换模式,当监测到所述MIC脚电压为1.8V时,所述电源管理器切换成充电模式给耳机供电;当监测到所述MIC脚电压为2.5V时,所述电源管理器切换成通路控制模式对多路开关进行控制。6.根据权利要求4所述的基于耳机实现左右声正常输出的系统,其特征在于,所述声道切换模块包括: 高电平输出单元,用于当当前耳机的角度数据大于X°时,输出高电平,控制多路开关进行左右声道的切换; 低电平输出单元,用于当当前耳机的角度数据小于Y。时,输出低电平,则不进行左右声道的切换处理。
【文档编号】H04R3/00GK105959854SQ201610456867
【公开日】2016年9月21日
【申请日】2016年6月22日
【发明人】陈琼
【申请人】惠州Tcl移动通信有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1