麦克风阵列、声速估计方法、拾音方法及相关装置、设备与流程
未命名
09-09
阅读:97
评论:0

1.本技术涉及语音技术领域,具体地涉及一种麦克风阵列、声速估计方法、拾音方法及相关装置、设备。
背景技术:
2.随着科技的发展,许多电子设备上设置了麦克风阵列,麦克风阵列成为了人机语音交互的重要枢纽。
3.麦克风阵列(microphone array)指的是麦克风的排列。麦克风阵列由一定数量的麦克风组成,用来对声场的控件特性进行采样并处理。现有麦克风阵列中一般由至少两个全向麦克风组成。
4.在现有技术中,为了更好的采集语音信号抑制噪声信号,可以进行定向波束拾取。在进行定向波束拾取时,可以通过麦克风阵列的波达方向、麦克风阵列中各麦克风间的距离及当前声速,对麦克风阵列拾取的声信号进行特定方向的信号增强,达到定向波束拾取的目的。由于麦克风阵列的波达方向、麦克风阵列中各麦克风间的距离是预先设置的,因此,定向波束拾取的准确性主要取决于声速的估计。目前常见的声速测量方法主要包括基于经验公式的声速间接测量方法和基于主动发声的声速直接测量方法。
5.声速间接测量方法主要是利用空气中的声速与环境的温度、湿度和压力的函数关系,通过仪器测量环境的温度、湿度以及压力,进而通过经验公式来计算声速。一般而言,环境温度与声速的相关性最大,温度越高,声速越大。常用的经验公式如下,其中,c表示声速,t表示环境温度,t0为预设温度参考值。由于在实际应用中,声速受多方面因素的影响,在环境发生变化时,无法快速准确的计算出声速,因此,上述声速间接测量方法测量的声速准确性不高。
6.声速直接测量方法是通过主动发声,例如,发声端与接收端的时钟同步后,发声端发出声信号,接收端接收声信号,通过发声端发出声信号的时间及接收端接收声信号的时间获知声信号传播时间。进而可以根据发声端与接收端间的距离,声信号传播时间估计出声速。该方法需要有特定的发声装置,才能完成声速的测试,在环境发生变化时,无法及时的测量出声速,导致声速估计的实时性较差。
技术实现要素:
7.有鉴于此,本技术提供一种麦克风阵列、声速估计方法、拾音方法及相关装置、设备,以利于解决现有技术中无法实时估计声速,导致声速准确性较低的问题。
8.第一方面,本技术实施例提供了一种麦克风阵列,包括:n个声矢量麦克风
9.n个声矢量麦克风,用于拾取目标声源的声信号;
10.其中,所述n个声矢量麦克风中至少两个声矢量麦克风间的距离在0.02米至5米的距离范围内,n为大于1的整数。
11.这样一来,通过麦克风阵列中包含的声矢量麦克风拾取目标声源的声信号,使得至少两个声矢量麦克风或n个声矢量麦克风拾取并发送给处理器的声信号不同,声信号包括声速信息,进而可以根据声矢量麦克风拾取的声信号估计出当前声速。在环境发生改变时,通过本技术实施例的麦克风阵列中包含的声矢量麦克风拾取目标声源的声信号,可以实时的获取当前声速,提高声速获取的准确性,从而可以提高定向波束拾取的准确性。
12.第一方面的一种实现方式中,所述n个声矢量麦克风位于同一平面内。
13.这样一来,麦克风阵列排布较为简单,易于实现,且拾音较精确。
14.第一方面的一种实现方式中,所述n个声矢量麦克风呈线性排布。
15.这样一来,麦克风阵列排布较为简单,易于实现,且拾音较精确。
16.第一方面的一种实现方式中,在所述n个声矢量麦克风中每个声矢量麦克风与相邻矢量麦克风间的距离相同。
17.这样一来,麦克风阵列排布较为简单,易于实现,且拾音较精确。
18.第一方面的一种实现方式中,在所述n个声矢量麦克风中两两相邻的声矢量麦克风间的距离不完全相等。
19.这样一来,麦克风阵列内n个声矢量麦克风中两个声矢量麦克风间的距离有多种取值,从而可以更好的适用于不同场景下的当前声速的估计,提高了麦克风阵列的使用性。
20.第一方面的一种实现方式中,所述n个声矢量麦克风包括第一声矢量麦克风,第二声矢量麦克风及第三声矢量麦克风,所述第三声矢量麦克风及所述第一声矢量麦克风所在的直线与所述第一声矢量麦克风及所述第二声矢量麦克风所在的直线之间的夹角大于0度,且小于180度。
21.这样一来,麦克风阵列可以在二维空间中采集声源的声信号,提高了声信号采集的准确性,从而可以提高当前声速估计的准确性,进而可以提高定向波束拾取的准确性。
22.第一方面的一种实现方式中,所述n个声矢量麦克风呈立体排布。
23.这样一来,麦克风阵列可以在三维空间中采集声源的声信号,提高了声信号采集的准确性,从而可以提高当前声速估计的准确性,进而可以提高定向波束拾取的准确性。
24.第一方面的一种实现方式中,还包括:至少两个全向麦克风。
25.这样一来,本技术中的麦克风阵列可以更准确的进行定向波束的拾取。
26.第一方面的一种实现方式中,所述至少两个全向麦克风位于所述n个声矢量麦克风之间。
27.这样一来,麦克风阵列排布较为简单,易于实现,且拾音较精确。
28.第一方面的一种实现方式中,还包括:处理单元;所述处理单元,用于获取所述n个声矢量麦克风拾取的声信号,根据所述n个声矢量麦克风拾取的声信号及n个声矢量麦克风间的距离,计算出当前声速,并输出所述当前声速。
29.这样一来,在本技术中的麦克风阵列可以直接进行当前声速的计算,从而可以将当前声速传输至其他器件,降低了其他器件的工作量,提高了麦克风阵列的使用性。并且,通过声矢量麦克风拾取的声信号进行当前声速估计,可以实时的计算出当前声速,从而可以提高定向波束拾取的准确性。
30.第一方面的一种实现方式中,所述处理单元,具体用于在所述n个声矢量麦克风中确定出j个目标声矢量麦克风对;其中,每个目标声矢量麦克风对中包含的两个声矢量麦克
风间的距离在0.02米至5米的距离范围内;j为大于1,且小于等于c(2,n)的整数,其中,所述c(2,n)表示从n个声矢量麦克风中取出包含两个声矢量麦克风的组合个数,c(2,n)为大于0且小于n的整数;
31.针对所述j个目标声矢量麦克风对中每个目标声矢量麦克风对,根据该目标声矢量麦克风对中每个声矢量麦克风拾取的声信号,计算该目标声矢量麦克风对中每个声矢量麦克风的波达方向及该目标声矢量麦克风对中两个声矢量麦克风间的声信号拾取时延;根据该目标声矢量麦克风对中每个声矢量麦克风的波达方向及该目标声矢量麦克风对中两个声矢量麦克风间的声信号拾取时延及该目标声矢量麦克风对中两个声矢量麦克风间的距离,计算出目标声速;
32.根据j个目标声速,计算当前声速,并输出当前声速。
33.这样一来,通过计算j个目标声矢量麦克风对的波达方向,从而可以计算出j个目标声矢量麦克风对的目标声速,进而可以根据j个目标声速,估计出当前声速,提高了当前声速的估计准确性。并且,在本技术中通过上述方式可以直接采用声矢量麦克风采集的声信号进行当前声速的估计,可以实时的计算出当前声速,从而可以提高定向波束拾取的准确性。
34.第一方面的一种实现方式中,每个目标声矢量麦克风对中包含的两个声矢量麦克风间的距离与参考距离的数量级相同;其中,所述参考距离是指目标声源与麦克风阵列中心点间的距离。
35.这样可以进一步提高估计当前声速的准确性,从而提高定向波束拾取的准确性。
36.第一方面的一种实现方式中,所述处理单元,还用于获取预设设置的至少两个全向麦克风中每个全向麦克风的波达方向;
37.在至少两个全向麦克风中确定出参考全向麦克风及至少一个增强全向麦克风;
38.根据所述至少两个全向麦克风中每个全向麦克风的波达方向,所述参考全向麦克风与所述至少一个增强全向麦克风间的距离及所述当前声速,确定所述至少一个增强全向麦克风的信号时延;
39.根据所述至少一个增强全向麦克风的信号时延及所述至少一个增强全向麦克风拾取的声信号,对所述参考全向麦克风拾取的声信号进行增强处理,得到增强声信号。
40.这样一来,在本技术实施例中,麦克风阵列可以根据声矢量麦克风拾取的声信号,实时计算出当前声速,根据当前声速进行定向波束的信号增强,从而在环境发生变化时,提高定向波束拾取的准确性。
41.第二方面,本技术实施例提供了一种麦克风阵列,包括:n个声矢量麦克风,用于拾取目标声源的声信号;
42.其中,所述n个声矢量麦克风中至少两个声矢量麦克风间的距离与参考距离的数量级相同;所述参考距离是指所述麦克风阵列中心点与目标声源间的距离;n为大于1的整数。
43.这样一来,在本技术中可以通过麦克风阵采集声信号以便通过该生信号估计当前声速,即为在本技术中可以实时的估计当前声速,从而可以在环境发生变化时,也可以估计出环境变化后的声速,提高了声速估计的准确性,从而在通过声速进行定向波束拾取时,可以提高定向波束拾取的准清性。
44.第三方面,本技术实施例提供了一种声速估计方法,应用于上述第一方面任一项所述的麦克风阵列,所述方法包括:
45.获取n个声矢量麦克风拾取的声信号;
46.根据n个声矢量麦克风拾取的声信号及n个声矢量麦克风间的距离,估计出当前声速。
47.这样一来,在本技术中可以通过麦克风阵采集声信号以便通过该生信号估计当前声速,即为在本技术中可以实时的估计当前声速,从而可以在环境发生变化时,也可以估计出环境变化后的声速,提高了声速估计的准确性,从而在通过声速进行定向波束拾取时,可以提高定向波束拾取的准清性。
48.第三方面的一种实现方式中,所述根据n个声矢量麦克风拾取的声信号及n个声矢量麦克风间的距离,估计出当前声速包括:
49.在所述n个声矢量麦克风中确定出j个目标声矢量麦克风对;其中,目标声矢量麦克风对中包含的两个声矢量麦克风间的距离在0.02米至5米的距离范围内;j为大于1,且小于等于c(2,n)的整数,其中,所述c(2,n)表示从n个声矢量麦克风中取出包含两个声矢量麦克风的组合个数,c(2,n)为大于0且小于n的整数;
50.针对所述j个目标声矢量麦克风对中每个目标声矢量麦克风对,根据该目标声矢量麦克风对中每个声矢量麦克风拾取的声信号,计算该目标声矢量麦克风对中每个声矢量麦克风的波达方向及该目标声矢量麦克风对中两个声矢量麦克风间的声信号拾取时延;根据该目标声矢量麦克风对中每个声矢量麦克风的波达方向及该目标声矢量麦克风对中两个声矢量麦克风间的声信号拾取时延及该目标声矢量麦克风对中两个声矢量麦克风间的距离,计算出目标声速;
51.根据j个目标声速,估计出当前声速。
52.这样一来,通过计算j个目标声矢量麦克风对的波达方向,从而可以计算出j个目标声矢量麦克风对的目标声速,进而可以根据j个目标声速,估计出当前声速,提高了当前声速的估计准确性。并且,在本技术中通过上述方式可以直接采用声矢量麦克风采集的声信号进行当前声速的估计,实现实时的计算出当前声速,从而可以提高定向波束拾取的准确性。
53.第三方面的一种实现方式中,所述在所述n个声矢量麦克风中确定出j个目标声矢量麦克风对包括:
54.确定所述n个声矢量麦克风中每两个声矢量麦克风间的距离;
55.将距离在0.02米至5米的距离范围内的两个声矢量麦克风确定为一个目标声矢量麦克风对,得到j个目标声矢量麦克风对,这样可以使得估计的声速更准确。
56.第三方面的一种实现方式中,所述将距离在0.02米至5米的距离范围内的两个声矢量麦克风确定为一个目标声矢量麦克风对,得到j个目标声矢量麦克风对包括:
57.将距离在0.02米至5米的距离范围内,且与参考距离的数量级相同的两个声矢量麦克风确定为一个目标声矢量麦克风对,得到j个目标声矢量麦克风对;其中,所述参考距离是指所述麦克风阵列中心点与目标声源间的距离,这样可以使得估计的声速更准确。
58.第三方面的一种实现方式中,所述根据该目标声矢量麦克风对中每个声矢量麦克风拾取的声信号,计算该目标声矢量麦克风对中每个声矢量麦克风的波达方向包括:
59.将该目标声矢量麦克风对中每个声矢量麦克风拾取的声信号变换为第一频域信号,得到该目标声矢量麦克风对中每个声矢量麦克风的h
×
k个时频点的声信号;其中,h表示频点的个数,为大于0整数;k表示帧数,为大于0的整数;
60.针对该目标声矢量麦克风对中每个声矢量麦克风的h
×
k个时频点的声信号中的每个时频点的声信号,根据该时频点的声信号,获取该时频点的声强信息;
61.根据该时频点的声强信息,计算该时频点的波达方向。
62.这样通过将时域的声信号转换为频域的声信号,可以更快更准确的计算出相应的波达方向,提高处理效率。
63.第三方面的一种实现方式中,所述根据该时频点的声信号,获取该时频点的声强信息包括:
64.根据该时频点的声信号,利用公式获取该时频点的声强信息;其中,时频点的声信号包括声压及在x轴,y轴,z轴方向上的声信号;i
x
(f,n)表示频点为f、帧数为n的时频点在x轴方向的声强信息;iy(f,n)表示频点为f、帧数为n的时频点在y轴方向的声强信息;iz(f,n)表示频点为f、帧数为n的时频点在z轴方向的声强信息;x
w*
(f,n)表示频点为f、帧数为n的时频点的声压的复共轭;x
x
(f,n)表示频点为f、帧数为n的时频点在x轴方向的声信号;xy(f,n)表示频点为f、帧数为n的时频点在y轴方向的声信号;xz(f,n)表示频点为f、帧数为n的时频点在z轴方向的声信号;f为大于0且不大于h的整数;n为大于0且不大于k的整数;
65.所述根据该时频点的声强信息,计算该时频点的波达方向包括:
66.根据该时频点的声强信息,利用公式根据该时频点的声强信息,利用公式计算该时频点的波达方向;其中,表示取实部,φ
(f,n)
表示频点为f、帧数为n的时频点的水平角,θ
(f,n)
表示频点为f、帧数为n的时频点的俯仰角。
67.这样可以更快速更准确的计算出每个时频点的波达方向,提高处理效率。
68.第三方面的一种实现方式中,在所述根据该时频点的声强信息,计算该时频点的波达方向之前,还包括:
69.根据该时频点的声信号,确定所述时频点的声信号是否为语音信号;
70.所述根据该时频点的声强信息,计算该时频点的波达方向包括:
71.在所述时频点的声信号为语音信号时,根据该时频点的声强信息,计算该时频点的波达方向。
72.这样,可以将在确定该时频点的声信号为语音信号时,才根据该时频点的声强信息计算该时频点的波达方向。在确定该时频点的声信号为噪声信号时,则不再计算该时频点的波达方向。从而可以大大减少计算工作量,减少软硬件资源的占用。
73.第三方面的一种实现方式中,所述根据该目标声矢量麦克风对中每个声矢量麦克
风拾取的声信号,计算该目标声矢量麦克风对中两个声矢量麦克风间的声信号拾取时延包括:
74.将该目标声矢量麦克风对中每个声矢量麦克风拾取的声信号变换为第二频域信号,得到该目标声矢量麦克风对中每个声矢量麦克风的k帧第二频域声信号;
75.根据该目标声矢量麦克风对中每个声矢量麦克风的k帧第二频域声信号,通过预设时延算法计算该目标声矢量麦克风对中两个声矢量麦克风拾取每帧第二频域声信号时的时延。
76.这样通过将时域的声信号转换为频域的声信号,可以更快更准确的估计出声信号的时延,提高处理效率。
77.第三方面的一种实现方式中,所述预设时延算法包括:广义互相关算法或广义互相关-相位变换算法或基于插值的时延估计算法,从而可以更快更准确的估计出声信号的时延,提高处理效率。
78.第三方面的一种实现方式中,所述根据该目标声矢量麦克风对中每个声矢量麦克风的波达方向及该目标声矢量麦克风对中两个声矢量麦克风间拾取声信号的时延及该目标声矢量麦克风对中两个声矢量麦克风间的距离,计算出目标声速包括:
79.根据该目标声矢量麦克风对中每个声矢量麦克风的h
×
k个时频点的波达方向、该目标声矢量麦克风对中两个声矢量麦克风拾取每帧第二频域声信号的时延,及该目标声矢量麦克风对中两个声矢量麦克风间的距离,利用公式计算出该目标声矢量麦克风对的对应时频点的目标声速;其中,c
(f,n)
表示目标声速;d表示该目标声矢量麦克风对中两个声矢量麦克风间的距离;τn表示该目标声矢量麦克风对中两个声矢量麦克风间拾取第n帧第二频域声信号时的时延;θ
1(f,n)
表示该目标声矢量麦克风对中一个声矢量麦克风的频点为f、帧数为n的时频点的俯仰角,θ
2(f,n)
表示该目标声矢量麦克风对中另一个声矢量麦克风的频点为f、帧数为n的时频点的俯仰角。
80.这样在本技术实施例中,通过目标声矢量麦克风对中的两个声矢量麦克风拾取的声信号计算出该两个声矢量麦克风的波达方向及两个声矢量麦克风拾取声信号间的时延后,利用该两个声矢量麦克风的波达方向及两个声矢量麦克风拾取声信号间的时延,计算出目标声速,进而可以计算出当前声速,从而可以在环境发生变化时,也可以估计出环境变化后的声速,提高了声速估计的准确性,从而在通过声速进行定向波束拾取时,可以提高定向波束拾取的准清性。
81.第三方面的一种实现方式中,所述根据j个目标声速,估计出当前声速包括:
82.根据j个目标声速,计算j个目标声速的均值,将所述j个目标声速的均值确定为当前声速,可以提高当前声速估计的准确性。
83.第四方面,本技术实施例提供了一种拾音方法,应用于上述第一方面任一项所述的麦克风阵列,所述方法包括:获取麦克风阵列中n个声矢量麦克风拾取的声信号,并根据n个声矢量麦克风拾取的声信号,获取当前声速;
84.获取预先设置的麦克风阵列中每个全向麦克风的波达方向;其中,所述麦克风阵列中包含有至少两个全向麦克风;
85.在至少两个全向麦克风中确定出参考全向麦克风及至少一个增强全向麦克风;
86.根据所述至少两个全向麦克风中每个全向麦克风的波达方向,所述参考全向麦克风与所述至少一个增强全向麦克风间的距离及所述当前声速,确定所述至少一个增强全向麦克风的信号时延;
87.根据所述至少一个增强全向麦克风的信号时延及所述至少一个增强全向麦克风拾取的声信号,对所述参考全向麦克风拾取的声信号进行增强处理,得到增强声信号。
88.这样一来,在进行定向声速拾取时,可以先根据麦克风阵列中声矢量麦克风拾取的声信号进行当前声速的估计,在估计出当前声速后,利用估计出的当前声速及麦克风阵列中全向麦克风的波达方向计算出麦克风阵列中全向麦克风的信号时延,进而可以根据计算出的麦克风阵列中全向麦克风的信号时延,对全向麦克风拾取的声信号进行增强处理,得到增强声信号,实现定向波束拾取的目的。由于当前声速是实时估计的,并不是预设的值,因此可以提高全向麦克风的信号时延的估计准确性,从而可以提高定向波束拾取的准确性。
89.第五方面,本技术实施例提供了一种声速估计装置,包括:
90.获取单元,用于获取n个声矢量麦克风拾取的声信号;
91.处理单元,用于根据n个声矢量麦克风拾取的声信号及n个声矢量麦克风间的距离,估计出当前声速。
92.这样一来,在本技术中可以通过麦克风阵采集声信号以便通过该生信号估计当前声速,即为在本技术中可以实时的估计当前声速,从而可以在环境发生变化时,也可以估计出环境变化后的声速,提高了声速估计的准确性,从而在通过声速进行定向波束拾取时,可以提高定向波束拾取的准清性。
93.第六方面,本技术实施例提供了一种拾音装置,包括:
94.获取单元,用于获取麦克风阵列中n个声矢量麦克风拾取的声信号,并根据n个声矢量麦克风拾取的声信号,获取当前声速;
95.获取单元,还用于获取预先设置的麦克风阵列中每个全向麦克风的波达方向;其中,所述麦克风阵列中包含有至少两个全向麦克风;
96.确定单元,用于在至少两个全向麦克风中确定出参考全向麦克风及至少一个增强全向麦克风;
97.确定单元,还用于根据所述至少两个全向麦克风中每个全向麦克风的波达方向,所述参考全向麦克风与所述至少一个增强全向麦克风间的距离及所述当前声速,确定所述至少一个增强全向麦克风的信号时延;
98.处理单元,用于根据所述至少一个增强全向麦克风的信号时延及所述至少一个增强全向麦克风拾取的声信号,对所述参考全向麦克风拾取的声信号进行增强处理,得到增强声信号。
99.这样一来,在进行定向声速拾取时,可以先根据麦克风阵列中声矢量麦克风拾取的声信号进行当前声速的估计,在估计出当前声速后,利用估计出的当前声速及麦克风阵列中全向麦克风的波达方向计算出麦克风阵列中全向麦克风的信号时延,进而可以根据计算出的麦克风阵列中全向麦克风的信号时延,对全向麦克风拾取的声信号进行增强处理,得到增强声信号,实现定向波束拾取的目的。由于当前声速是实时估计的,并不是预设的值,因此可以提高全向麦克风的信号时延的估计准确性,从而可以提高定向波束拾取的准
确性。
100.第七方面,本技术实施例提供了一种电子设备,包括:上述第一方面任一项或第二方面所述的麦克风阵列。
101.这样一来,在电子设备中包含有上述第一方面任一项或第二方面所述的麦克风阵列,该电子设备可以通过麦克风阵列中包含的声矢量麦克风拾取目标声源的声信号,进而可以根据声矢量麦克风拾取的声信号估计出当前声速。在环境发生改变时,通过本技术实施例的麦克风阵列中包含的声矢量麦克风拾取目标声源的声信号,可以实时的获取当前声速,提高声速获取的准确性,从而可以提高定向波束拾取的准确性。
102.第七方面的一种实现方式中,所述电子设备包括车辆或终端设备,这样可以使麦克风阵列应用到不同的设备中,提高麦克风阵列的使用性。
103.第七方面的一种实现方式中,在电子设备包括车辆时,所述麦克风阵列的n个声矢量麦克风中至少两个声矢量麦克风间的距离在0.2米至2米的距离范围内,以使得麦克风阵列应用到车辆中时,可以更准确的估计出当前声速,在进行定向波束拾取时,提高定向波束拾取的准确性。
104.第七方面的一种实现方式中,在电子设备包括终端设备时,所述麦克风阵列的n个声矢量麦克风中至少两个声矢量麦克风间的距离在0.02米至5米的距离范围内,以使得麦克风阵列应用到终端设备时,可以更准确的估计出当前声速,在进行定向波束拾取时,提高定向波束拾取的准确性。
105.第八方面,本技术实施例提供了一种电子设备,包括用于存储计算机程序指令的存储器和用于执行程序指令的处理器,其中,当该计算机程序指令被所述处理器执行时,触发所述电子设备执行上述第三方面任一项所述的方法或者执行上述第四方面任一项所述的方法。
106.第九方面,本技术实施例提供了一种计算机可读存储介质,所述计算机可读存储介质包括存储的程序,其中,在所述程序运行时控制所述计算机可读存储介质所在设备执行上述第三方面任一项所述的方法,或者执行上述第四方面任一项所述的方法。
107.采用本技术实施例所提供的方案,包括n个声矢量麦克风,其中,n个声矢量麦克风中至少两个声矢量麦克风间的距离在0.02米至5米的距离范围内。n个声矢量麦克风,用于拾取目标声源的声信号,其中拾取的目标声源的声信号用于估计当前声速。即为在本技术实施例中,可以通过麦克风阵列中包含的声矢量麦克风拾取目标声源的声信号,进而可以根据声矢量麦克风拾取的声信号估计出当前声速。这样一来,在环境发生改变时,通过本技术实施例的麦克风阵列中包含的声矢量麦克风拾取目标声源的声信号,进而可以实时的获取当前声速,提高声速获取的准确性。
附图说明
108.为了更清楚地说明本技术实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。
109.图1为本技术实施例提供的一种麦克风阵列的结构示意图;
110.图2为本技术实施例提供的一种声矢量麦克风的结构示意图;
111.图3为本技术实施例提供的一种麦克风阵列的场景示意图;
112.图4为本技术实施例提供的另一种麦克风阵列的场景示意图;
113.图5为本技术实施例提供的另一种麦克风阵列的结构示意图;
114.图6为本技术实施例提供的另一种麦克风阵列的结构示意图;
115.图7为本技术实施例提供的另一种麦克风阵列的结构示意图;
116.图8为本技术实施例提供的另一种麦克风阵列的结构示意图;
117.图9为本技术实施例提供的另一种麦克风阵列的结构示意图;
118.图10为本技术实施例提供的另一种麦克风阵列的结构示意图;
119.图11为本技术实施例提供的另一种麦克风阵列的结构示意图;
120.图12为本技术实施例提供的另一种麦克风阵列的结构示意图;
121.图13为本技术实施例提供的另一种麦克风阵列的结构示意图;
122.图14为本技术实施例提供的另一种麦克风阵列的结构示意图;
123.图15为本技术实施例提供的一种声速估计方法的流程示意图;
124.图16为本技术实施例提供的一种声速估计方法的场景示意图;
125.图17为本技术实施例提供的另一种声速估计方法的场景示意图;
126.图18a为本技术实施例提供的另一种声速估计方法的场景示意图;
127.图18b为本技术实施例提供的另一种声速估计方法的场景示意图;
128.图19为本技术实施例提供的另一种声速估计方法的场景示意图;
129.图20a为本技术实施例提供的另一种声速估计方法的场景示意图;
130.图20b为本技术实施例提供的另一种声速估计方法的场景示意图;
131.图21a为本技术实施例提供的另一种声速估计方法的场景示意图;
132.图21b为本技术实施例提供的另一种声速估计方法的场景示意图;
133.图22a为本技术实施例提供的另一种声速估计方法的场景示意图;
134.图22b为本技术实施例提供的另一种声速估计方法的场景示意图;
135.图23为本技术实施例提供的一种拾音方法的流程示意图;
136.图24为本技术实施例提供的一种拾音方法的场景示意图
137.图25为本技术实施例提供的一种声速估计装置的结构示意图;
138.图26为本技术实施例提供的另一种声速估计装置的结构示意图;
139.图27为本技术实施例提供的一种拾音装置的结构示意图;
140.图28为本技术实施例提供的一种电子设备的结构示意图。
具体实施方式
141.为了更好的理解本技术的技术方案,下面结合附图对本技术实施例进行详细描述。
142.应当明确,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本技术保护的范围。
143.在本技术实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制
本技术。在本技术实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。
144.应当理解,本文中使用的术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,甲和/或乙,可以表示:单独存在甲,同时存在甲和乙,单独存在乙这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
145.在本技术实施例提供的声速估计方法及拾音方法均可以应用于电子设备。该电子设备可以是任意具有语音交互功能的设备,包括但不限于具有语音交互功能的智能音箱、智能家电、智能手机、平板电脑、车载设备、可穿戴设备以及增强现实(augmented reality,ar)/虚拟现实设备(virtual reality,vr)等。本技术提供的声速估计方法及拾音方法具体可以以应用程序或软件的形式存储于电子设备,电子设备通过执行该应用程序或软件,实现本技术提供的声速估计方法及拾音方法。
146.本技术实施例所述的麦克风设备还可以应用于上述电子设备中。
147.麦克风是将声音信号转换为电信号的能量转换器件。麦克风阵列指的是麦克风的排列,也就是说,麦克风阵列由一定数量的麦克风组成,用来对声场的控件特性进行采样并处理。麦克风阵列包括一字阵列、十字阵列、平面阵列、螺旋阵列、球形阵列以及无规则阵列等类型。麦克风阵列的阵元数量(即为麦克风数量),可以从2个到上个不等。由于成本限制,消费级麦克风阵列的阵元数量一般不超过8个,常见的是6个阵元的麦克风阵及4个阵元的麦克风阵列。并且一些麦克风阵列中一般包含的麦克风为全向麦克风。
148.在一些技术中,为了更好的采集语音信号抑制噪声信号,可以进行定向波束拾取。在进行定向波束拾取时,可以通过麦克风阵列的波达方向、麦克风阵列中各麦克风间的距离及当前声速,对麦克风阵列拾取的声信号进行特定方向的信号增强,达到定向波束拾取的目的。由于麦克风阵列的波达方向、麦克风阵列中各麦克风间的距离是预先设置的,因此,定向波束拾取的准确性主要取决于声速的估计。目前常见的声速测量方法主要包括基于经验公式的声速间接测量方法和基于主动发声的声速直接测量方法。
149.声速间接测量方法主要是利用空气中的声速与环境的温度、湿度和压力的函数关系,通过仪器测量环境的温度、湿度以及压力,进而通过经验公式来计算声速。一般而言,环境温度与声速的相关性最大,温度越高,声速越大。常用的经验公式如下,其中,c表示声速,t表示环境温度,t0为预设温度参考值。由于在实际应用中,声速受多方面因素的影响,在环境发生变化时,无法快速准确的计算出声速,因此,上述声速间接测量方法测量的声速准确性不高。
150.声速直接测量方法是通过主动发声,例如,发声端与接收端的时钟同步后,发声端发出声信号,接收端接收声信号,通过发声端发出声信号的时间及接收端接收声信号的时间获知声信号传播时间。进而可以根据发声端与接收端间的距离,声信号传播时间估计出声速。该方法需要有特定的发声装置,才能完成声速的测试,实现较为复杂。
151.针对上述问题,本技术实施例提供了一种麦克风阵列,包括n个声矢量麦克风,其中,n个声矢量麦克风中至少两个声矢量麦克风间在0.02米至5米的距离范围内;n个声矢量麦克风,用于拾取目标声源的声信号,其中,拾取的目标声源的声信号用于估计当前声速。即为在本技术实施例中,可以通过麦克风阵列中包含的声矢量麦克风拾取目标声源的声信
号,进而可以根据声矢量麦克风拾取的声信号估计出当前声速。这样一来,在环境发生改变时,通过本技术实施例的麦克风阵列中包含的声矢量麦克风拾取目标声源的声信号,进而可以实时的获取当前声速,提高声速获取的准确性。并且,在申请中无需设置专门的发声端就可以估计出声速,实现简单方便。以下进行详细说明。
152.参见图1,为本技术实施例提供的一种麦克风阵列的结构示意图。如图1所示,该麦克风阵列包括:n个声矢量麦克风11;其中,n个声矢量麦克风11中至少两个声矢量麦克风11间的距离在0.02米至5米的距离范围内。n为大于1的整数。
153.n个声矢量麦克风11,用于拾取目标声源的声信号。其中,拾取的目标声源的声信号用于估计当前声速。
154.需要说明的是,声矢量麦克风11又称声矢量传感器,可以同步共点测量声场中一点处的声压和质点振速,其由声压传感器和第一质点振速传感器,第二质点振速传感器及第三质点传感器复合而成,其中,声压传感器用于测量声场的声压,第一质点振速传感器用于测量声场中第一方向上的质点振动速度,第二质点传感器用于测量声场中第二方向上的质点振动速度,第三质点传感器用于测量声场中第三方向上的质点振动速度,且第一方向、第二方向及第三方向是空间中相互正交的三个方向。基于此,在本技术实施例中声矢量麦克风11可以同时测量声场中一点的声压及相互正交的三个振速分量,如图2所示。
155.需要说明的是,在本技术实施例中,将第一方向、第二方向及第三方向通过坐标轴表示时,通常用x轴所指的方向表示第一方向,y轴所指的方向表示第二方向,z轴所指的方向表示第三方向,参考图3所示。
156.假设在t时刻的声源s与空间点r间的二维波达方向为(θ,φ),其中θ是俯仰角,假设在t时刻的声源s与空间点r间的二维波达方向为(θ,φ),其中θ是俯仰角,φ是水平角,φ∈[0,2π),参考图3所示。此时,声矢量麦克风的单位方向向量φ是水平角,φ∈[0,2π),参考图3所示。此时,声矢量麦克风的单位方向向量令v(r,t)表示位于空间点r处t时刻的质点振速,p(r,t)表示该点t时刻的声压,则有其中,ρ0表示介质密度,c表示介质中声速,由欧拉方式表示介质密度,c表示介质中声速,由欧拉方式对于平面波算子等价于这样由于声压、振速仅与时间t有关,故可以省略表达式中的参数空间点r,故有:
[0157]
通过上述公式可知,在忽略噪声的情况下,声矢量麦克风11中声压传感器输出的信号为:x
p
(t)=p(t),其中,p(t)表示声压传感器检测到的声压信号。同理,声矢量麦克风11中质点振速传感器输出的信号为:x
vv
(t)=p(t)
*
μ。其中,x
p
(t)表示声压传感器输出的信号,x
vv
(t)表示质点振速传感器输出的信号。
[0158]
上述声矢量麦克风11输出的声信号通过向量形式可以表示为:上述声矢量麦克风11输出的声信号通过向量形式可以表示为:由此可知,声矢量麦克风11的导向矢量为
[0159]
其中,xv(t)表示声矢量麦克风11输出的声信号。由于声矢量麦克风11中的声压传感器及三个质点振速传感器输出的信号满足上述公式,因此,可以通过声矢量麦克风中声压传感器检测的声压信号及三个质点振速传感器检测的质点振速矢量信号,计算出声矢量麦克风的doa(direction of arrival,波达方向)θ及φ。
[0160]
假设有两个声矢量麦克风11分别为avs1及avs2,且avs1与avs2间的距离为d,avs1与目标声源间的俯仰角为θ1,avs2与目标声源间的俯仰角为θ2,l为波到达avs1及avs2的路程差,l=τc,其中τ是avs1及avs2接收信号的时延的估计值,c为待估计的当前声速。参考图4所示,目标声源、声矢量麦克风avs1及声矢量麦克风avs2构成的三角形中,s表示目标声源的位置,o1表示avs1的位置,o3表示avs2的位置,o4表示avs1在三角形so1o3中,边so1表示波到达avs1的路程,边so3表示波到达avs2的路程,边o1o2表示波到达avs1及avs2的路程差,边o1o3表示avs1及avs2间的距离,o4表示avs1及avs2间的中点。角so1o3为avs1与目标声源间的俯仰角θ1,θ3表示角o1so3,角so3o1的补角为avs2与目标声源间的俯仰角θ2,θ
mid
表示角so
mid
o3。在三角形o1o2o3中,φ1表示角o1o2o3,φ2表示角o1o3o2,边o1o2表示波到达avs1及avs2的路程差。在三角so2o3中φ
′1表示角so2o3,且与角o1o2o3的补角,φ
′2表示角so3o2。利用几何关系将φ1与φ2用估计值θ1与θ2表示:
[0161]
θ3=θ
2-θ1[0162][0163]
φ1=π-φ'1[0164]
φ2=π-(φ'2+θ2)
[0165][0166][0167]
基于三角形正弦定理得到:
[0168][0169]
根据已知值d,以及估计值τ,θ1,θ2,进而可以估计声速c:
[0170]
由此可知,通过avs1计算出其俯仰角θ1,通过avs2计算出其俯仰角θ2,即可估计出声速。因此,在本技术实施例中n个声矢量麦克风11拾取的目标声源的声信号能够用于估计出当前声速。
[0171]
在本技术实施例中,为了实现当前声速的测量,将麦克风阵列中设置有至少两个声矢量麦克风11,即为设置有n个声矢量麦克风11。由于当两个声矢量麦克风11间的距离太近会导致两个声矢量麦克风11间拾取声信号的时间基本相同,两个声矢量麦克风11间的时延为零,此时估计出的当前声速误差较大。而当两个声矢量麦克风11间的距离太大会导致声源相对于两个声矢量麦克风11间的俯仰角基本相同,此时通过声矢量麦克风11输出的声信号估计出的当前声速误差较大,因此,为了保证估计出的当前声速的准确性,n个声矢量麦克风11中至少两个声矢量麦克风11间的距离在0.02米至5米的距离范围内。
[0172]
作为一种可能的实现方式,为了更准确的估计出当前声速,可以根据麦克风阵列的应用场景不同,设置n个声矢量麦克风中至少两个声矢量麦克风间的距离在不同的距离范围内。例如,在麦克风阵列应用到车辆中时,n个声矢量麦克风中至少两个声矢量麦克风间的距离在0.2米至2米的距离范围内。在麦克风阵列应用到终端设备中,例如音箱,则n个声矢量麦克风中至少两个声矢量麦克风间的距离在0.5米至5米的距离范围内。
[0173]
作为一种可能的实现方式,n个声矢量麦克风中至少有两个声矢量麦克风11间的距离在0.02米至5米的距离范围内,且与参考距离的数量级相同。其中,参考距离为麦克风阵列中心点及目标声源间的距离。
[0174]
需要说明的是,n个声矢量麦克风中至少有两个声矢量麦克风11间的距离与参考距离的数量级相同是指,参考距离与目标距离间的比值大于0且不大于10。其中,目标距离为n个声矢量麦克风中至少有两个声矢量麦克风11间的距离。
[0175]
在本技术实施例中,为了实现当前声速的测量,将麦克风阵列中设置有至少两个声矢量麦克风11,即为设置有n个声矢量麦克风11。n个声矢量麦克风11中至少两个声矢量麦克风11间的距离与参考距离的数量级相同。由于当两个声矢量麦克风11间的距离与参考距离的数量级不同时,例如当两个声矢量麦克风11间的距离远小于麦克风阵列中心点与目标声源间的距离时,此时声源相对于两个声矢量麦克风11间的俯仰角基本相同,此时通过声矢量麦克风11输出的声信号估计出的当前声速误差较大,因此,为了保证估计出的当前声速的准确性,需要保证n个声矢量麦克风中至少有两个声矢量麦克风11间的距离与麦克风阵列中心点及目标声源间的距离属于同一个数量级。
[0176]
作为一种可能的实现方式,在麦克风阵列中n个声矢量麦克风11中至少两个声矢量麦克风11间的距离与参考距离的数量级相同时,则可以在麦克风阵列中n个声矢量麦克风11中至少两个声矢量麦克风11间的距离确定后,不可改变时,可以调整参考距离,以使得麦克风阵列中n个声矢量麦克风11中至少两个声矢量麦克风11间的距离与参考距离的数量级相同。即为,麦克风阵列中n个声矢量麦克风11间的距离设定后不可改变。此时,麦克风阵列中的n个声矢量麦克风11中至少两个声矢量麦克风11间的距离在0.02米至5米的距离范围内,例如0.05米、0.1米、0.5米、1米、2米或3米等等。可以根据麦克风阵列中n个声矢量麦克风11中至少两个声矢量麦克风11间的距离,设置参考距离,即为设置目标声源与麦克风阵列中心点的距离。例如,在麦克风阵列中,至少两个麦克风间的距离为1米时,则目标声源与麦克风阵列中心点的距离可以在0米至10米的距离范围内。为了更准确的估计出声速,可以将目标声源与麦克风阵列中心点的距离设置在0.5米-1.5米的距离范围内。即为,在该种方式中,根据麦克风阵列中两个声矢量麦克风间的距离,调整参考距离,以使得两个声矢量麦克风间的距离与参考距离的数量级相同。
[0177]
作为一种可能的实现方式,麦克风阵列中n个声矢量麦克风11间的距离可以根据参考距离进行调整。即为,在参考距离一定的情况下,可以调整麦克风阵列中的n个声矢量麦克风中至少两个麦克风间的距离,以使得调整后的至少两个声矢量麦克风11间的距离与参考距离的数量级相同。例如,在参考距离为1米时,可以将n个声矢量麦克风11中至少两个声矢量麦克风11间的距离设置为大于0.1米即可。为了更准确的估计出当前声速,可以将n个声矢量麦克风11中至少两个声矢量麦克风11间的距离设置在在0.7米至1米的区间范围内。或者,参考距离在0.1米至0.5米的距离范围内时,为了更准确的估计出当前声速,可以将n个声矢量麦克风11中至少两个声矢量麦克风11间的距离在0.3米至1米的距离范围内。
[0178]
需要说明的是,在本技术实施例中,麦克风阵列中包含的n个声矢量麦克风11中仅需保证至少两个声矢量麦克风11间的距离在0.02米至5米的距离范围内即可,对麦克风阵列中n个声矢量麦克风11的具体排布方式不做限制,其可能的排布方式具体如下:
[0179]
作为一种可能的实现方式,n个声矢量麦克风11位于同一平面内,如图5-图9所示。
[0180]
作为一种可能的实现方式,n个声矢量麦克风11呈线性排布,例如,当n为4时,4个声矢量麦克风11呈线性排布,参考图5及图6所示。即为,n跟声矢量麦克风11按照预设顺序依次排列。线性排布的n个声矢量麦克风11实现较为简单。
[0181]
作为一种可能的实现方式,在n个声矢量麦克风11中每个声矢量麦克风11与相邻矢量麦克风11间的距离相同,例如,当n为4时,4个声矢量麦克风11中每个声矢量麦克风11与相邻矢量麦克风11间的距离相同,参考图5所示。即为,n个声矢量麦克风11等间距设置。也就是说,在n个声矢量麦克风11中两两相邻的声矢量麦克风11间的间距相等。
[0182]
作为一种可能的实现方式,在所述n个声矢量麦克风11中两两相邻的声矢量麦克风11间的距离不完全相等,例如,当n为4时,4个声矢量麦克风11中两两相邻的声矢量麦克风间11的距离分别为d1,d2及d3。参考图6所示,d1、d2及d3不相等。即为,在n个声矢量麦克风11中两两相邻的声矢量麦克风11间的距离存在不相等的情况。也就是说,n个声矢量麦克风11并不是等间距设置的。
[0183]
作为一种可能的实现方式,n个声矢量麦克风11包括第一声矢量麦克风111,第二声矢量麦克风112及第三声矢量麦克风113,第三声矢量麦克风113及第一声矢量麦克风111所在的直线与第一声矢量麦克风111及第二声矢量麦克风112所在的直线之间的夹角大于0度,且小于180度,参考图7所示。也就是说,n个声矢量麦克风11在同一个平面内,但并不是线性排布,至少存在第一声矢量麦克风111,第二声矢量麦克风112及第三声矢量麦克风113,其中,第三声矢量麦克风113及第一声矢量麦克风111所在的直线与第一声矢量麦克风111及第二声矢量麦克风112所在的直线之间的夹角大于0度,且小于180度。即为,第一声矢量麦克风111、第二声矢量麦克风112及第三声矢量麦克风113不在同一条直线上。例如,n个声矢量麦克风11呈多边形排布,或者呈圆形排布,或者呈其他二维排布,参考图8所示。
[0184]
作为一种可能的实现方式,n个声矢量麦克风11呈立体排布,如图9所示。即为,n个声矢量麦克风11在x轴,y轴及z轴三个不同方向上均有设置。这样,可以获取对目标声源的声信号进行立体采集,提高声速估计的正确性。
[0185]
作为一种可能的实现方式,n个声矢量麦克风11呈正四面体排布,或者呈三菱锥排布,如图10所示。
[0186]
需要说明的是,麦克风阵列中包含的n个声矢量麦克风11间的排布方式还可以由
其他形式的排布,例如螺旋排布,球形排布,只需保证至少两个声矢量麦克风11间的距离与参考距离的数量级相同,本技术对此不做限制。
[0187]
作为一种可能的实现方式,上述麦克风阵列还包括至少两个全向麦克风12,如图11所示。
[0188]
其中,全向麦克风12是无指向性麦克风,用于拾取目标声源的声信号。
[0189]
在本技术实施例中,在麦克风阵列中设置全向麦克风12,可以拾取目标声源的声信号,将该声信号用于语音输出。
[0190]
作为一种可能的实现方式,至少两个全向麦克风12位于n个声矢量麦克风11之间。例如,n个声矢量麦克风11设置在至少两个全向麦克风12的延长线上。
[0191]
作为一种可能的实现方式,上述麦克风阵列还包括:处理单元13,如图12所示。
[0192]
处理单元13,用于获取n个声矢量麦克风11拾取的声信号,根据n个声矢量麦克风11拾取的声信号及n个声矢量麦克风11间的距离,计算出当前声速,并输出当前声速。
[0193]
在本技术实施例中,处理单元13获取n个声矢量麦克风11拾取的声信号后,根据n个声矢量麦克风11拾取的声信号可以分别计算出n个声矢量麦克风的波达方向,并根据n个声矢量麦克风11拾取的声信号估计出声矢量麦克风11间的拾取声信号的时延,从而可以根据n个声矢量麦克风的波达方向,声矢量麦克风11间的拾取声信号的时延及n个声矢量麦克风间的距离,计算出当前声速,并输出所述当前声速。
[0194]
作为一种可能的实现方式,处理单元13,具体用于在n个声矢量麦克风中确定出j个目标声矢量麦克风对。其中,每个目标声矢量麦克风对中包含的两个声矢量麦克风间的距离在0.02米至5米的距离范围内;j为大于1,且小于等于c(2,n)的整数,c(2,n)表示从n个声矢量麦克风中取出包含两个声矢量麦克风的组合个数,c(2,n)为大于0且小于n的整数。
[0195]
针对j个目标声矢量麦克风对中每个目标声矢量麦克风对,根据该目标声矢量麦克风对中每个声矢量麦克风拾取的声信号,计算该目标声矢量麦克风对中每个声矢量麦克风的波达方向及该目标声矢量麦克风对中两个声矢量麦克风间的声信号拾取时延;根据该目标声矢量麦克风对中每个声矢量麦克风的波达方向及该目标声矢量麦克风对中两个声矢量麦克风间的声信号拾取时延及该目标声矢量麦克风对中两个声矢量麦克风间的距离,计算出目标声速;
[0196]
根据j个目标声速,计算当前声速,并输出当前声速。
[0197]
也就是说,由于n个声矢量麦克风11中并不是两两声矢量麦克风11之间的距离均在0.02米至5米的距离范围内。因此,需要在n个声矢量麦克风11选取出j个目标声矢量麦克风对。其中,每个目标声矢量麦克风对中包含的两个声矢量麦克风11之间的距离在0.02米至5米的距离范围内。
[0198]
作为一种可能的实现方式,处理单元13可以根据n个声矢量麦克风11的两两声矢量麦克风之间的距离,在n个声矢量麦克风11中选取出j为目标声矢量麦克风对。
[0199]
处理单元13在n个声矢量麦克风11中,需要针对每个声矢量麦克风将该声矢量麦克风与其他n-1个声矢量麦克风间的距离计算出,从而可以确定出哪两个声矢量麦克风间的距离在0.02米至5米的距离范围内,进而实现在n个声矢量麦克风中确定出j个目标声矢量麦克风对。
[0200]
作为一种可能的实现方式,每个目标声矢量麦克风对中包含的两个声矢量麦克风
间的距离与参考距离的数量级相同。其中,参考距离是指目标声源与麦克风阵列中心点间的距离。即为,在n个声矢量麦克风中,将两个声矢量麦克风间的距离在0.02米至5米的距离范围内,且该两个声矢量麦克风间的距离与参考距离的数量级相同的,确定为一个目标声矢量麦克对,从而可以确定出j个目标声矢量麦克风对。
[0201]
处理单元13在确定出j个目标声矢量麦克风对中,针对j个目标声矢量麦克风对中的每个目标声矢量麦克风对,根据该目标声矢量麦克风对中每个声矢量麦克风拾取的声信号,计算该目标声矢量麦克风对中每个声矢量麦克风的波达方向,并根据该目标声矢量麦克风对中两个声矢量麦克风拾取的声信号计算出该目标声矢量麦克风对中两个声矢量麦克风拾取声信号间的时延,从而可以根据该目标声矢量麦克风对中两个声矢量麦克风的波达方向,两个声矢量麦克风拾取声信号间的时延以及该目标声矢量麦克风对中两个声矢量麦克风间的距离,通过公式计算出目标声速。其中,c表示目标声速,d为该目标声矢量麦克风对中两个声矢量麦克风间的距离,τ为该目标声矢量麦克风对中两个声矢量麦克风拾取声信号间的时延,θ1为该目标声矢量麦克风对中一个声矢量麦克风的波达方向中的俯仰角,θ2为该目标声矢量麦克风对中另一个声矢量麦克风的波达方向中的俯仰角。
[0202]
通过上述方式可以针对每个目标声矢量麦克风对计算出一个目标声速,从而计算出j个目标声速,在计算出j个目标声速后,可以根据j个目标声速,计算出当前声速。
[0203]
作为一种可能的实现方式,处理单元13在计算出j个目标声速后,可以将j个目标声速进行均值计算,将计算出的均值作为当前声速。
[0204]
作为一种可能的实现方式,上述处理单元13,还用于获取预设设置的至少两个全向麦克风中每个全向麦克风的波达方向;在至少两个全向麦克风中确定出参考全向麦克风及至少一个增强全向麦克风;根据至少两个全向麦克风中每个全向麦克风的波达方向,参考全向麦克风与至少一个增强全向麦克风间的距离及所述当前声速,确定至少一个增强全向麦克风的信号时延;根据至少一个增强全向麦克风的信号时延及至少一个增强全向麦克风拾取的声信号,对参考全向麦克风拾取的声信号进行增强处理,得到增强声信号。
[0205]
在本技术实施例中,在麦克风阵列包含有至少两个全向麦克风时,可以根据n个声矢量麦克风拾取的声信号计算出当前声速后,利用计算出的当前声速,对至少两个全向麦克风拾取的声信号进行定向波束增强,以实现定向波束拾取的目的。此时,至少两个全向麦克风在设置到电子设备时,可以根据电子设备实际的使用场景,设置出至少两个全向麦克风的波达方向。此时,处理单元13可以获取预先设置的至少两个全向麦克风中每个全向麦克风的波达方向。处理单元13可以根据需要增强的波束方向,在至少两个全向麦克风中确定出参考全向麦克风及至少一个增强全向麦克风。例如,处理单元13可以将距离目标声源最近的全向麦克风确定为参考全向麦克风。将麦克风阵列中的其他全向麦克风确定为增强全向麦克风。从而可以确定出参考全向麦克风及至少一个增强全向麦克风。或者,处理单元13可以在至少两个全向麦克风中任选一个全向麦克风作为参考全向麦克风。将麦克风阵列中的其他全向麦克风确定为增强全向麦克风。当然,还可以通过其他方式在至少两个全向麦克风中确定出参考全向麦克风及至少一个增强全向麦克风,本技术对此不作限制。
[0206]
处理单元13在计算出当前声速,获取了至少两个全向麦克风中每个全向麦克风的
波达方向后,可以根据至少两个全向麦克风中每个全向麦克风的波达方向,参考全向麦克风与每个增强全向麦克风间的距离及当前声速,计算出每个增强全向麦克风的信号时延;在计算出每个增强全向麦克风的信号时延后,对每个增强全向麦克风拾取的声信号进行相应的时延处理,并将延时处理后的声信号与参考全向麦克风拾取的声信号进行求和处理,得到增强声信号,处理单元13可以输出增强声信号。
[0207]
作为一种可能的实现方式,在麦克风阵列中,若至少两个全向麦克风中两两相邻的全向麦克风间的距离相同时,如图13所示,处理单元13根据至少两个全向麦克风中每个全向麦克风的波达方向,参考全向麦克风与至少一个增强全向麦克风间的距离及当前声速,利用公式计算出每个增强全向麦克风的信号时延。其中,ds表示第s个增强全向麦克风与参考全向麦克风间的距离。s为大于0,且小于麦克风阵列中包含的全向麦克风的个数。τs表示第s个增强全向麦克风的信号时延,c表示当前声速,表示第s个增强全向麦克风的波达方向。
[0208]
在计算出每个增强全向麦克风的信号时延后,处理单元13可以根据至少一个增强全向麦克风的信号时延及至少一个增强全向麦克风拾取的声信号,通过公式全向麦克风的信号时延及至少一个增强全向麦克风拾取的声信号,通过公式对参考全向麦克风拾取的声信号进行增强处理,计算出增强声信号。其中,s
(1*(s+1))
为由参考全向麦克风及至少一个增强全向麦克风拾取的信号形成的1行s+1列的向量。其中,在s
(1*(s+1))
向量中的第一个数值为参考全向麦克风拾取的声信号。(*)
t
表示矩阵转置,f表示全向麦克风的采样频率,j2=-1,e为自然对数的底数。
[0209]
这样,处理单元13在对全向麦克风拾取的声信号进行定向增强时,所使用的当前声速是通过麦克风阵列中的n个声矢量麦克风拾取的声信号实时计算出的,在当环境变化时,计算出的当前声速会实时动态的调整,从而可以提高对全向麦克风拾取的声信号进行定向增强的准确性。
[0210]
参考图14所示,本技术实施例提供了另一种麦克风阵列,该麦克风阵阵列的结构与上述实施例图1-图13所述的麦克风阵的结构相同,可参考上述实施例。其区别点在于在本技术实施例中,n个声矢量麦克风11中至少两个声矢量麦克风间的距离与参考距离的数量级相同。
[0211]
如图14所示,麦克风阵列包括:n个声矢量麦克风11,用于拾取目标声源的声信号。其中,n个声矢量麦克风11中至少两个声矢量麦克风间的距离d4与参考距离d5的数量级相同。参考距离d5是指麦克风阵列中心点与目标声源间的距离;n为大于1的整数。
[0212]
在本技术实施例中,为了实现当前声速的测量,将麦克风阵列中设置有至少两个声矢量麦克风11,即为设置有n个声矢量麦克风11。n个声矢量麦克风11中至少两个声矢量麦克风11间的距离与参考距离的数量级相同。由于当两个声矢量麦克风11间的距离与参考距离的数量级不同时,例如当两个声矢量麦克风11间的距离远小于麦克风阵列中心点与目标声源间的距离时,此时声源相对于两个声矢量麦克风11间的俯仰角基本相同,此时通过声矢量麦克风11输出的声信号估计出的当前声速误差较大,因此,为了保证估计出的当前声速的准确性,需要保证n个声矢量麦克风中至少有两个声矢量麦克风11间的距离与麦克风阵列中心点及目标声源间的距离属于同一个数量级。
[0213]
作为一种可能的实现方式,上述麦克风阵列中包含有处理单元,处理单元用于获
取所述n个声矢量麦克风拾取的声信号,根据所述n个声矢量麦克风拾取的声信号及n个声矢量麦克风间的距离,计算出当前声速,并输出所述当前声速。
[0214]
作为一种可能的实现方式,在所述n个声矢量麦克风中确定出j个目标声矢量麦克风对;其中,每个目标声矢量麦克风对中包含的两个声矢量麦克风间的距离与参考距离的数量级相同。j为大于1且小于等于c(2,n)的整数,其中,所述c(2,n)表示从n个声矢量麦克风中取出包含两个声矢量麦克风的组合个数,c(2,n)为大于0且小于n的整数。
[0215]
针对所述j个目标声矢量麦克风对中每个目标声矢量麦克风对,根据该目标声矢量麦克风对中每个声矢量麦克风拾取的声信号,计算该目标声矢量麦克风对中每个声矢量麦克风的波达方向及该目标声矢量麦克风对中两个声矢量麦克风间的声信号拾取时延;根据该目标声矢量麦克风对中每个声矢量麦克风的波达方向及该目标声矢量麦克风对中两个声矢量麦克风间的声信号拾取时延及该目标声矢量麦克风对中两个声矢量麦克风间的距离,计算出目标声速;
[0216]
根据j个目标声速,计算当前声速,并输出当前声速。
[0217]
参考图15所示,本技术实施例提供了一种声速估计方法,该声速估计的方法应用于图1-图14所示的麦克风阵列。所述方法包括:
[0218]
步骤s1501、获取n个声矢量麦克风拾取的声信号。
[0219]
在本技术实施例中,在麦克风阵列中n个声矢量麦克风拾取了声信号后,可以从n个声矢量麦克风中获取拾取的声信号。
[0220]
步骤s1502、根据n个声矢量麦克风拾取的声信号及n个声矢量麦克风间的距离,估计出当前声速。
[0221]
在本技术实施例中,在获取了n个声矢量麦克风拾取的声信号后,可以根据n个声矢量麦克风拾取的声信号计算出各个声矢量麦克风的波达方向,及声矢量麦克风间的拾取声信号的时延,从而可以根据各个声矢量麦克风的波达方向、声矢量麦克风间的拾取声信号的时延及n个声矢量麦克风间的距离,估计出当前声速。
[0222]
作为一种可能的实现方式,根据n个声矢量麦克风拾取的声信号及n个声矢量麦克风间的距离,估计出当前声速包括:
[0223]
在所述n个声矢量麦克风中确定出j个目标声矢量麦克风对。其中,目标声矢量麦克风对中包含的两个声矢量麦克风间的距离在0.02米至5米的距离范围内;j为大于1,且小于等于c(2,n)的整数,其中,所述c(2,n)表示从n个声矢量麦克风中取出包含两个声矢量麦克风的组合个数;c(2,n)为大于0且小于n的整数。
[0224]
针对j个目标声矢量麦克风对中每个目标声矢量麦克风对,根据该目标声矢量麦克风对中每个声矢量麦克风拾取的声信号,计算该目标声矢量麦克风对中每个声矢量麦克风的波达方向doa及该目标声矢量麦克风对中两个声矢量麦克风间的声信号拾取时延;根据该目标声矢量麦克风对中每个声矢量麦克风的波达方向doa及该目标声矢量麦克风对中两个声矢量麦克风间的声信号拾取时延及该目标声矢量麦克风对中两个声矢量麦克风间的距离,计算出目标声速。
[0225]
根据j个目标声速,估计出当前声速。
[0226]
具体的,由于n个声矢量麦克风中并不是两两声矢量麦克风之间的距离均在0.02米至5米的距离范围内。而在本技术中对当前声速进行估计时,通常是使用两个声矢量麦克
风拾取的声信号进行估计。为了保证估计出的当前声速的准确性,需要用于估计当前声速的两个声矢量麦克风之间的距离在0.02米至5米的距离范围内。因此,需要在n个声矢量麦克风确定出j个目标声矢量麦克风对。其中,每个目标声矢量麦克风对中包含的两个声矢量麦克风之间的距离在0.02米至5米的距离范围内。
[0227]
作为一种可能的实现方式,在n个声矢量麦克风中确定出j个目标声矢量麦克风对包括:确定n个声矢量麦克风中每两个声矢量麦克风间的距离;将距离在0.02米至5米的距离范围内的两个声矢量麦克风确定为一个目标声矢量麦克风对,得到j个目标声矢量麦克风对。
[0228]
即为,在n个声矢量麦克风11中,需要针对每个声矢量麦克风将该声矢量麦克风与其他n-1个声矢量麦克风间的距离计算出,从而可以确定出哪两个声矢量麦克风间的距离在0.02米至5米的距离范围内,将距离在0.02米至5米的距离范围内的两个声矢量麦克风确定为一个目标声矢量麦克风对,进而可以在n个声矢量麦克风中确定出j个目标声矢量麦克风对。
[0229]
作为一种可能的实现方式,将距离在0.02米至5米的距离范围内的两个声矢量麦克风确定为一个目标声矢量麦克风对,得到j个目标声矢量麦克风对包括:
[0230]
将距离在0.02米至5米的距离范围内,且与参考距离的数量级相同的两个声矢量麦克风确定为一个目标声矢量麦克风对,得到j个目标声矢量麦克风对。
[0231]
其中,参考距离是指麦克风阵列中心点与目标声源间的距离。
[0232]
在本技术实施例中,为了估计出的当前声速更为准确,可以将两个声矢量麦克风的距离在0.02米至5米的距离范围内,且该距离与参考距离的数量级相同的两个声矢量麦克风确定为一个目标声矢量麦克风对,从而可以在n个声矢量麦克风中得到j个目标声矢量麦克风对。
[0233]
在确定出j个目标声矢量麦克风对中,针对j个目标声矢量麦克风对中的每个目标声矢量麦克风对,根据该目标声矢量麦克风对中每个声矢量麦克风拾取的声信号,计算该目标声矢量麦克风对中每个声矢量麦克风的波达方向,并根据该目标声矢量麦克风对中两个声矢量麦克风拾取的声信号计算出该目标声矢量麦克风对中两个声矢量麦克风拾取声信号间的时延,从而可以根据该目标声矢量麦克风对中两个声矢量麦克风的波达方向,两个声矢量麦克风拾取声信号间的时延以及该目标声矢量麦克风对中两个声矢量麦克风间的距离,通过公式计算出目标声速。其中,c表示目标声速,d为该目标声矢量麦克风对中两个声矢量麦克风间的距离,τ为该目标声矢量麦克风对中两个声矢量麦克风拾取声信号间的时延,θ1为该目标声矢量麦克风对中一个声矢量麦克风的波达方向中的俯仰角,θ2为该目标声矢量麦克风对中另一个声矢量麦克风的波达方向中的俯仰角。
[0234]
作为一种可能的实现方式,根据该目标声矢量麦克风对中每个声矢量麦克风拾取的声信号,计算该目标声矢量麦克风对中每个声矢量麦克风的波达方向包括:
[0235]
将该目标声矢量麦克风对中每个声矢量麦克风拾取的声信号变换为第一频域信号,得到该目标声矢量麦克风对中每个声矢量麦克风的h
×
k个时频点的声信号。针对该目标声矢量麦克风对中每个声矢量麦克风的h
×
k个时频点的声信号中的每个时频点的声信号,根据该时频点的声信号,获取该时频点的声强信息;根据该时频点的声强信息,计算该
时频点的波达方向。
[0236]
其中,h表示频点的个数,为大于0整数;k表示帧数,为大于0的整数。
[0237]
在本技术实施例中,声矢量麦克风拾取的声信号为时域信号,为了方便计算可以将时域信号转换为频域的信号。此时,在进行每个声矢量麦克风的波达方向计算时,需要先将声矢量麦克风拾取的声信号转换为频域信号。此时在针对j个目标声矢量麦克风对中的每个目标声矢量麦克风对,计算该目标声矢量麦克风对中两个声矢量麦克风的波达方向时,可以先将该目标声矢量麦克风对中每个声矢量麦克风拾取的声信号变换为第一频域信号,得到该目标声矢量麦克风对中每个声矢量麦克风的h
×
k个时频点的声信号。由于声信号的短时平稳特性,通常需要将声信号切分成若干时长的帧并以帧为单位进行后续处理。帧长依据不同的音频采样率有一些常用值,当然也可以根据实际需求设置该值。根据预设的帧长,可以对该目标声矢量麦克风对中每个声矢量麦克风拾取的声信号进行分帧处理。分帧后的信号由采样点组成。例如,在采样频率为16khz时,根据短时谱分析的需要,真长一般设定为10~35ms(毫秒)之间,假设以16ms分帧,此时分帧后一帧信号内有256个采样点,此时的帧长即为256。在分帧后可以对分帧后的信号进行短时傅里叶变换(stft),变换成第一频域信号。短时傅里叶变换是对帧信号先加窗在做傅里叶变换。加窗函数的目的是为了做短时傅里叶变换时,减少帧信号边界处的不连续造成的频率泄露。在对帧信号进行短时傅里叶变换后,可以得到每个声矢量麦克风的h
×
k个时频点的声信号。针对该目标声矢量麦克风对中每个声矢量麦克风的h
×
k个时频点的声信号中的每个时频点,根据该时频点的声信号,获取该时频点的声强信息。在获取了该时频点的声强信号后,可以根据该时频点的声强信息,计算出该时频点的波达方向。
[0238]
需要说明的是,声强是与声波传播相垂直方向单位面积、单位时间内通过的声能量,并且是一个矢量,描述声传播的方向。由于声矢量麦克风的波达方向与声矢量麦克风中质点振速传感器检测的信号有关。因此,可以根据质点振速传感器检测的质点振速矢量信号,获取时频域上的瞬时声强信息。
[0239]
作为一种可能的实现方式,根据该时频点的声信号,获取该时频点的声强信息包括:
[0240]
根据该时频点的声信号,利用公式获取该时频点的声强信息。
[0241]
其中,时频点的声信号包括声压及在x轴,y轴,z轴方向上的声信号。声压为标量,x轴,y轴,z轴方向上的声信号为矢量,即为质点振速传感器检测的质点振速矢量信号。i
x
(f,n)表示频点为f、帧数为n的时频点在x轴方向的声强信息;iy(f,n)表示频点为f、帧数为n的时频点在y轴方向的声强信息;iz(f,n)表示频点为f、帧数为n的时频点在z轴方向的声强信息;x
w*
(f,n)表示频点为f、帧数为n的时频点的声压的复共轭;x
x
(f,n)表示频点为f、帧数为n的时频点在x轴方向的信号;xy(f,n)表示频点为f、帧数为n的时频点在y轴方向的声信号;xz(f,n)表示频点为f、帧数为n的时频点在z轴方向的声信号;f为大于0且不大于h的整数;n为大于0且不大于k的整数。
[0242]
根据该时频点的声强信息,计算该时频点的波达方向包括:
[0243]
根据该时频点的声强信息,利用公式根据该时频点的声强信息,利用公式计算该时频点的doa;其中,表示取实部,表示频点为f、帧数为n的时频点的水平角,θ
(f,n)
表示频点为f、帧数为n的时频点的俯仰角。
[0244]
在本技术实施例中,通过上述实施例可知,因此,在获取了该时频点的声信号后,利用公式根据该时频点的声信号,利用公式公式根据该时频点的声信号,利用公式获取该时频点的声强信息时,声强信息可以通过简化为:强信息时,声强信息可以通过简化为:
[0245]
在获取了声强信息后,可以根据该时频点的声强信息,计算出该时频点的波达方向,即为计算出该时频点的水平角φ及俯仰角θ的值。
[0246]
通过公式可以获知可以获知因此,在获取了该时频点的声强信息后,可以根据公式计算出该时频点的波达方向。
[0247]
其中,
[0248]
通过上述公式可以计算出该目标声矢量麦克风对中每个声矢量麦克风的h
×
k个时频点的波达方向。
[0249]
需要说明的是,在本技术实施例中,在获取了该目标声矢量麦克风对中每个声矢量麦克风拾取的声信号后,还可以通过其他方式计算出该目标声矢量麦克风对中每个声矢量麦克风拾取声信号时的波达方向,本技术对此不作限制。
[0250]
作为一种可能的实现方式,根据该目标声矢量麦克风对中每个声矢量麦克风拾取的声信号,计算该目标声矢量麦克风对中两个声矢量麦克风间的声信号拾取时延包括:
[0251]
将该目标声矢量麦克风对中每个声矢量麦克风拾取的声信号变换为第二频域信号,得到该目标声矢量麦克风对中每个声矢量麦克风的k帧第二频域声信号;根据该目标声矢量麦克风对中每个声矢量麦克风拾取的k帧第二频域声信号,通过预设时延算法分别计算该目标声矢量麦克风对中两个声矢量麦克风间拾取每帧第二频域声信号时的时延。
[0252]
在本技术实施例中,在计算当前声速时,在计算该目标声矢量麦克风对中每个声矢量麦克风的各个时频点的波达方向后,需要计算出该目标声矢量麦克风对中两个声矢量麦克风间的时延进行估计。此时,为了方便计算,可以将该目标声矢量麦克风对中每个声矢量麦克风拾取的声信号进行分帧处理,得到k帧声信号。具体的分帧过程可以参考上述计算该目标声矢量麦克风对中每个声矢量麦克风的各个时频点的波达方向时的分帧过程,在此不再赘述。在将该目标声矢量麦克风的声信号进行分帧处理得到k帧声信号后,可以对每帧声信号进行傅里叶变换,例如进行离散傅里叶变换,得到每帧的第二频域声信号。根据k帧第二频域声信号,利用预设时延算法计算出目标声矢量麦克风对中两个声矢量麦克风间拾取k帧第二频域声信号中每帧第二频域声信号时的时延。
[0253]
需要说明的是,预设时延算法是预先设置的,用以计算麦克风间声信号时延的算法。
[0254]
作为一种可能的实现方式,预设时延算法包括:广义互相关算法或广义互相关-相位变换算法或基于插值的时延估计算法。当然,预设时延算法还可以是其他算法,本技术对此不作限制。
[0255]
在本技术实施例中,在预设时延算法为广义互相关算法(generalized cross-correlation,gcc)时,根据该目标声矢量麦克风对中两个声矢量麦克风拾取的k帧第二频域声信号,通过预设时延算法计算该目标声矢量麦克风对中两个声矢量麦克风拾取每帧第二频域声信号的时延,即为,根据该目标声矢量麦克风对中每个声矢量麦克风接收的k帧第二频域声信号,通过广义互相关算法计算该目标声矢量麦克风对中两个声矢量麦克风间拾取每帧第二频域声信号时的时延。
[0256]
下面以计算该目标声矢量麦克风中两个声矢量麦克风拾取第i帧第二频域声信号时的时延为例进行说明。
[0257]
此时,利用广义互相关算法gcc计算该目标声矢量麦克风中一个声矢量麦克风即为x0接收的第i帧第二频域声信号x0[i]与该目标声矢量麦克风中另一个声矢量麦克风即为x1接收的第i帧第二频域声信号x1[i]间的信号时延,则互相关函数为:
[0258]
其中,其中,为互功率谱,k为帧数;x0[i]表示声矢量麦克风x0的第i帧第二频域声信号;表示声矢量麦克风x1的第i帧第二频域声信号的共轭;j2=-1,e为自然对数的底数;φ[i]表示加权函数或者称之为预滤波器,可以是预先设置的;是加权互相功率谱;ψ
gcc
[m]表示x0[i]与x1[i]的互相关函数,其峰值对应的位置即为两路信号x0[i]与x1[i]的时延值;m表示待估计的时延值。其中,argmax表示使ψ
gcc
[m]取得最大值时,即为声矢量麦克风x0与x1接收到声信号的时延估计
值。
[0259]
通过上述方式可以分别计算出该目标声矢量麦克风中两个声矢量麦克风之间拾取每帧第二频域声信号时的时延。
[0260]
作为一种可能的实现方式,在上述预设时延算法为广义互相关-相位变换算法时,则计算该目标声矢量麦克风中两个声矢量麦克风之间拾取k帧第二频域声信号时的时延的方式与上述预设时延算法为广义互相关算法间的区别为:在上述预设时延算法为广义互相关-相位变换算法时,上述加权函数表示互功率谱。
[0261]
这样,在计算出该目标声矢量麦克风对中每个声矢量麦克风的h
×
k个时频点的波达方向,该目标声矢量麦克风对中两个声矢量麦克风之间拾取k帧第二频域声信号时的k个时延后,可以根据该目标声矢量麦克风对中每个声矢量麦克风的h
×
k个时频点的波达方向,该目标声矢量麦克风对中两个声矢量麦克风之间拾取k帧第二频域声信号时的k个时延及该目标声矢量麦克风对中两个声矢量麦克风之间距离,计算出目标声矢量麦克风对对应的h
×
k个时频点中每个时频点的目标声速。其中,在计算h
×
k个时频点中每个时频点的目标声速时,第i分帧中不同频率点的时频点均对应两个声矢量麦克风拾取第i帧第二频域声信号时的时延。即为,同一分帧的不同频率点的时频点对应的信号的时延相同。
[0262]
通过上述方式可以针对每个目标声矢量麦克风对计算出h
×
k个时频点中每个时频点的目标声速,从而计算出h
×
k个时频点中每个时频点的j个目标声速,在计算出h
×
k个时频点中每个时频点的j个目标声速后,可以根据h
×
k个时频点中每个时频点的j个目标声速,计算出中h
×
k个时频点中每个时频点的当前声速。
[0263]
作为一种可能的实现方式,根据该目标声矢量麦克风对中每个声矢量麦克风的波达方向及该目标声矢量麦克风对中两个声矢量麦克风间拾取声信号的时延及该目标声矢量麦克风对中两个声矢量麦克风间的距离,计算出目标声速包括:
[0264]
根据该目标声矢量麦克风对中每个声矢量麦克风的h
×
k个时频点的波达方向、该目标声矢量麦克风对中两个声矢量麦克风拾取每帧第二频域声信号的时延,及该目标声矢量麦克风对中两个声矢量麦克风间的距离,利用公式计算出该目标声矢量麦克风对的对应时频点的目标声速。
[0265]
其中,c
(f,n)
表示频点为f、帧数为n的时频点的目标声速;d表示该目标声矢量麦克风对中两个声矢量麦克风间的距离;τn表示该目标声矢量麦克风对中两个声矢量麦克风间拾取第n帧第二频域声信号时的时延;θ
1(f,n)
表示该目标声矢量麦克风对中一个声矢量麦克风的频点为f、帧数为n的时频点的俯仰角,θ
2(f,n)
表示该目标声矢量麦克风对中另一个声矢量麦克风的频点为f、帧数为n的时频点的俯仰角。
[0266]
作为一种可能的实现方式,在该目标声矢量麦克风对中每个声矢量麦克风的h
×
k个时频点的波达方向时,由于存在一些时频点对应的声信号是噪声信号,而非有效的语音信号,可以在计算目标声矢量麦克风对中每个声矢量麦克风的h
×
k个时频点的波达方向之前,将时频点对应的声信号是噪声信号去除,仅计算时频点对应的声信号为有效的语音信号的时频点的波达角。此时,在根据该时频点的声强信息,计算该时频点的波达方向之前,还包括:
[0267]
根据该时频点的声信号,确定时频点的声信号是否为语音信号。
[0268]
即为,在本技术实施例中,在将该目标声矢量麦克风对中每个声矢量麦克风拾取的声信号划分为h
×
k个时频点的声信号后,可以对每个时频点的声信号进行检测,以确定其是否为语音信号。例如,可以进行vad(voice activity detection,语音活动检测)检测每个时频点的声信号是否为语音信号。其中,vad又称语音端点检测,语音边界检测。通常地,vad用于从声音信号流里识别和消除长时间的静音期,以达到在不降低业务质量的情况下节省话路资源的作用。静音抑制可以节约宝贵的带宽资源,可以有利于减少用户感觉到的端到端的时延。在本实施例中,vad主要用于检测每个时频点的声信号是否为语音信号。
[0269]
作为一种可能的实现方式,可以通过imcra(improved minima controlled recursive averaging,改进型最小控制递归平均)算法可以计算出每个时频点的声信号是语音信号的概率及是噪声信号的概率。从而可以根据预设的语音阈值,及每个时频点的声信号是语音信号的概率,在计算出每个时频点的声信号为语音信号的概率,及噪声信号的概率后,可以通过vad mask(语音存在检测掩模抑制)根据计算结果,对时频点的声信号进行丢弃或保留,从而确定出声信号为语音信号的时频点,参考图16所示。其中,在附图16中,w表示声矢量麦克风拾取的声压信号,x表示声矢量麦克风拾取的在x轴方向上的声信号,y表示是声矢量麦克风拾取的在y轴方向上的声信号,z表示声矢量麦克风拾取的在z轴方向上的声信号。
[0270]
其中,vad mask可以为0-1mask:即检测到声信号为语音时全部保留,检测到声信号为非语音时全部舍弃。当然vad mask还可以为比例mask。vad通过imcra算法输出当前时频点的声信号为语音信号的概率,根据该概率对该时频点施加增益,使得概率更高的有更高可能性的保留,概率更低的有更高可能性的舍弃。
[0271]
作为一种可能的实现方式,还可以根据该时频点的声强信息,通过声强信息的实部数据及虚部数据确定该时频点的声信号是否为语音信号。例如,计算该时频点的实部数据及虚部数据间的比值,将比较与预设检测阈值进行比较,在该时频点的实部数据及虚部数据间的比值大于预设检测阈值时,则确定该时频点的声信号为语音信号。在该时频点的实部数据及虚部数据间的比值不大于预设检测阈值时,则确定该时频点的声信号为噪声信号。这样可以形成单声源直达波时频点的集合,即为得到n个声矢量麦克风的单声源直达波时频点的集合,参考图17所示,通过上述方法选择单声源直达波时频点,并可以对单声源直达波时频点的波达方向进行估计。
[0272]
需要说明的是,在图17中,w
n1
表示第n1个声矢量麦克风拾取的声压信号,x
n1
表示表示第n1个声矢量麦克风在x轴方向上拾取的声信号,y
n1
表示表示第n1个声矢量麦克风在y轴方向上拾取的声信号,z
n1
表示表示第n1个声矢量麦克风在z轴方向上拾取的声信号。
[0273]
作为一种可能的实现方式,通过每个目标声矢量麦克风对中单声源直达波时频点的集合中时频点的波达方向估计,可以得到j个单声源直达波时频点的集合中时频点的波达方向估计,可以使用高斯加权方法对j个单声源直达波时频点的集合中时频点的波达方向估计进行融合,得到最终的波达方向,参考图17所示。
[0274]
其中,高斯加权方法为通过公式其中,高斯加权方法为通过公式进行融合。其中,
θd,φd是角度网格上的任意一点,a为平滑的步长,h(a,b)为二维高斯滤波器,其中σ是标准差,a,b为步长内邻域点到中心点的长度。
[0275]
需要说明的是,还可以通过其他方式检测每个时频点的声信号是否为语音信号,本技术对此不作限制。
[0276]
此时,上述根据该时频点的声强信息,计算该时频点的波达方向包括:在时频点的声信号为语音信号时,根据该时频点的声强信息,计算该时频点的波达方向。
[0277]
也就是说,在确定该时频点的声信号为语音信号时,才根据该时频点的声强信息计算该时频点的波达方向。在确定该时频点的声信号为噪声信号时,则不再计算该时频点的波达方向。从而可以大大减少计算工作量,减少软硬件资源的占用。
[0278]
作为一种可能的实现方式,根据j个目标声速,估计出当前声速包括:根据j个目标声速,计算j个目标声速的均值,将所述j个目标声速的均值确定为当前声速。
[0279]
即为,在计算出h
×
k个时频点中每个时频点的j个目标声速后,分别将h
×
k个时频点中每个时频点的j个目标声速进行均值计算,从而得出h
×
k个时频点中每个时频点的目标声速的均值,分别将h
×
k个时频点中每个时频点的目标声速的均值作为h
×
k个时频点中每个时频点的当前声速。
[0280]
需要说明的是,在上述预设时延算法为gcc算法时,gcc算法估计的时延为整点时延,其影响gcc算法时延估计准确性的主要因素包括:采样频率及两个声矢量麦克风间的间距。在两个声矢量麦克风间的间距过小时,导致时延小于1/fs;其中,fs为采样频率。反之,当两个声矢量麦克风之间的间距过大时,则声信号相关性减弱。对于采样频率而言,当采样频率过小时,导致整点时延估计的分辨率越低,造成时延估计的不准确。
[0281]
下面通过仿真数据对采样频率及两个声矢量麦克风对时延估计的影响进行说明。
[0282]
例如,将声源相对于两个声矢量麦克风设置于不同的波达方向的位置。假设利用镜像源模型生成房间冲激响应,在理想情况(无噪声、无混响)下,声源距离麦克风阵列中心点位置为1米时,阵列间距固定为0.04米时,声源角度设置为下表1所示。
[0283]
表1
[0284]
实验编号123456789θ19.5219.0628.6238.2247.8757.5867.3577.2087.14θ210.5221.0231.4941.9152.2662.5472.7382.8492.86θ
mid
102030405060708090
[0285]
其中,表1中为声源向对于两个声矢量麦克风设置与不同的波达方向。参考图4所示,其中,θ1为声源相对于声矢量麦克风avs1的波达方向,θ2为声源相对于声矢量麦克风avs2的波达方向,θ
mid
为声源相对于声矢量麦克风avs1与声矢量麦克风avs2组成的两元阵的中心的波达方向。
[0286]
分别将采样频率设置为fs1=16000hz(赫兹)以及fs1=48000hz,声矢量麦克风avs1与声矢量麦克风avs2间距固定为0.04米,进行时延估计。时延估计的结果参考图18a及图18b中的所示。其中,图18a是采样频率为16000hz时的时延估计图;图18b为采样频率为48000hz时的时延估计图。通过图18a及图18b可知,在声矢量麦克风avs1与声矢量麦克风avs2间距固定的情况,提高采样频率可以明显提高时延估计的准确性。
[0287]
分别将声矢量麦克风avs1与声矢量麦克风avs2间距设置为0.1米,0.2米,0.3米,0.4米,0.5米,0.6米,0.7米,0.8米,0.9米及1米。由于不同麦克风阵列间距的时延估计真值不同,因此直接展示利用时延估计值与波达方向估计值获得声速估计的结果更为直观,参考图19所示。如图19所示,两个声矢量麦克风间的不同间距,其对应的声速估计绝对误差不同。通过附图19可知,两个声矢量麦克风的间距从0.7米-1米声速估计平均误差均在2m/s(米/秒)左右。参考图20a及图20b所示,其为两个声矢量麦克风间的间距分别为1米与0.1米时随声源波达方向变化的声速估计结果。其中,图20a所示为两个声矢量麦克风间的间距为1米时随声源波达方向变化的声速估计结果,图20b所示为两个声矢量麦克风间的间距为0.1米时随声源波达方向变化的声速估计结果。
[0288]
综上所述,适当增加两个声矢量麦克风之间的间距可以提高时延估计的准确性,进而提高声速估计的准确性。在声源距离麦克风阵列中心点位置为1米时,两个声矢量麦克风间的间距在0.7米至1米的区间范围内,估计出的声速误差较小。
[0289]
下面以麦克风阵列为两元线阵为例,通过仿真实验验证方法混响情况下,验证声速估计的准确性。实验设置如下:声源与麦克风阵列的中心点的距离:1米;房间尺寸:10*8*6米;声矢量麦克风间的间距:1米;两个声矢量麦克风的位置:avs1为[3 2.5 2],avs2为[4 2.5 2]。
[0290]
声源类型:语音,采样频率:48khz(千赫兹),时长:1s;设备自噪声:snr=20db(分贝);环境噪声:snr=20db;t
60
=0.6s(秒)。
[0291]
通过估计声矢量麦克风avs1及avs2的波达方向及信号的拾取时延,估计出的声速参考图21a及图21b所示。其中,图21a所示为t
60
=0.3s时的声速估计;图21b所示为t
60
=0.6s时的声速估计。其中,t60=0.3s的声速误差均值为1.73m/s。其中,t60=0.6s的声速误差均值为2.53m/s。由此可知,本本技术实施例所述的声速估计方法在混响情况下也能保证声速估计的准确性。
[0292]
进一步地,利用多元阵列可以进一步提高声速估计的准确性,下面以麦克风阵列组成四元线阵,以仿真结果说明多元线阵提高声速估计的准确性,四个阵元的位置如表2所示。声源与麦克风阵列的中心点的距离:1米;房间尺寸:10*8*6米。
[0293]
表2
[0294][0295]
参考图22a及图22b所示,在图22a中所示为t
60
=0.3s时的声速估计,图22b所示为t
60
=0.6s时的声速估计。其中,通过图22a及图22b可知,t60=0.3s的声速误差均值为1.62m/s。其中,t60=0.6s的声速误差均值为2.40m/s。相对于上述麦克风阵列为两元线阵,本实施例中的声速误差均减少了,因此,利用多元阵列可以进一步提高声速估计的准确性。
[0296]
当麦克风阵列设置在电子设备中时,可以对通过该麦克风阵列拾取电子设备内或者使用电子设备的用户的声信号。通常,需要进行定向波束拾取,以便更好的拾取用户的声信号。因此,在将麦克风阵列设置在电子设备时,可以预先设置定向波束的波达方向,即为需要对哪个方向的波束进行定向拾取,从而可以根据该预先设置的波达方向进行定向波束的拾取。基于此,参考图23所示,本技术实施例提供了一种拾音方法,应用于上述图1-图13
所示的麦克风阵列。
[0297]
所述方法包括:
[0298]
步骤s2301、获取麦克风阵列中n个声矢量麦克风拾取的声信号,并根据n个声矢量麦克风拾取的声信号,获取当前声速。
[0299]
具体的,可参考是上述步骤s1401-步骤s1402,在此不再赘述。
[0300]
步骤s2302、获取预先设置的麦克风阵列中每个全向麦克风的波达方向。
[0301]
其中,麦克风阵列中包含有至少两个全向麦克风。
[0302]
在本技术实施例中,麦克风阵列中包含有至少两个全向麦克风时,可以通过全向麦克风拾取声源的声信号,进而将该声信号作为拾取的语音信号进行输出。而在输出全向麦克风拾取的声信号前,可以对该声信号进行定向波束增强,以实现定向波束拾取的目的。此时,当麦克风阵列设置到电子设备时,可以根据电子设备的使用场景,预先设置该麦克风阵列需要定向增强的波束对应的波达方向。即为,预先设置了全向麦克风的波达方向。
[0303]
示例性的,当电子设备为车辆时,如图24所示。可以将麦克风阵列设置在车辆中,如图24所示,假设麦克风阵列中包含有两个声矢量麦克风及四个全向麦克风。其中,两个声矢量麦克风与四个全向麦克风位于同一水平线上,且四个全向麦克风位于两个声矢量麦克风之间。将主驾位置处用户的语音信号作为定向波束拾取的方向。此时,可以根据主驾位置处用户的位置,设置麦克风阵列中全向麦克风的波达方向。可以获取预先设置的麦克风阵列中全向麦克风的波达方向。
[0304]
作为一种可能的实现方式,麦克风阵列中至少两个全向麦克风的波达方向相同。
[0305]
步骤s2303、在至少两个全向麦克风中确定出参考全向麦克风及至少一个增强全向麦克风。
[0306]
在本技术实施例中,可以根据需要增强的波束方向,在至少两个全向麦克风中确定出参考全向麦克风及至少一个增强全向麦克风。例如,可以将距离目标声源最近的全向麦克风确定为参考全向麦克风。将麦克风阵列中的其他全向麦克风确定为增强全向麦克风。从而可以确定出参考全向麦克风及至少一个增强全向麦克风。或者,可以在至少两个全向麦克风中任选一个全向麦克风作为参考全向麦克风。将麦克风阵列中的其他全向麦克风确定为增强全向麦克风。
[0307]
需要说明的是,还可以通过其他方式在至少两个全向麦克风中确定出参考全向麦克风及至少一个增强全向麦克风,本技术对此不作限制。
[0308]
步骤s2304、根据至少两个全向麦克风中每个全向麦克风的波达方向,参考全向麦克风与至少一个增强全向麦克风间的距离及当前声速,确定至少一个增强全向麦克风的信号时延。
[0309]
在本技术实施例中,在计算出当前声速,获取了至少两个全向麦克风中每个全向麦克风的波达方向后,可以根据至少两个全向麦克风中每个全向麦克风的波达方向,参考全向麦克风与每个增强全向麦克风间的距离及当前声速,计算出每个增强全向麦克风的信号时延。
[0310]
作为一种可能的实现方式,在麦克风阵列中,若至少两个全向麦克风中两两相邻的全向麦克风间的距离相同时,如图24所示,根据至少两个全向麦克风中每个全向麦克风的波达方向,参考全向麦克风与至少一个增强全向麦克风间的距离及当前声速,利用公式
计算出每个增强全向麦克风的信号时延。
[0311]
其中,ds表示第s个增强全向麦克风与参考全向麦克风间的距离。s为大于0,且小于麦克风阵列中包含的全向麦克风的个数。τs表示第s个增强全向麦克风的信号时延,c表示当前声速,表示第s个增强全向麦克风的波达方向。
[0312]
步骤s2305、根据至少一个增强全向麦克风的信号时延及至少一个增强全向麦克风拾取的声信号,对参考全向麦克风拾取的声信号进行增强处理,得到增强声信号。
[0313]
在本技术实施例中,在计算出每个增强全向麦克风的信号时延后,对每个增强全向麦克风拾取的声信号进行相应的时延处理,并将延时处理后的声信号与参考全向麦克风拾取的声信号进行求和处理,得到增强声信号,可以输出增强声信号。
[0314]
作为一种可能的实现方式,在计算出每个增强全向麦克风的信号时延后,可以根据至少一个增强全向麦克风的信号时延及至少一个增强全向麦克风拾取的声信号,通过公式式对参考全向麦克风拾取的声信号进行增强处理,计算出增强声信号。
[0315]
其中,s
(1*(ns+1))
为由参考全向麦克风及至少一个增强全向麦克风拾取的信号形成的1行s+1列的向量。其中,在s
(1*(s+1))
向量中的第一个数值为参考全向麦克风拾取的声信号。(*)
t
表示矩阵转置,f表示全向麦克风的采样频率,j2=-1,e为自然对数的底数。
[0316]
如上述例所示,假设车辆的车窗在关闭时,当主驾驶位置处的用户说话时,通过麦克风阵列中的声矢量麦克风拾取的声信号,可以计算出当前声速。并根据当前声速,至少两个全向麦克风中每个全向麦克风的波达方向,及参考全向麦克风与至少一个增强全向麦克风间的距离,对全向麦克风拾取的声信号进行定向波束的增强,得到增强信号。该增强信号为对主驾驶位置处用户的语音信号进行增强的信号。
[0317]
当车辆的车窗打开时,车内空气流速加快,使得声速发生变化。若继续使用车窗关闭时计算的声速进行定向波束的增强,会导致增强的信号与主驾驶位置处用户的语音信号发生偏差。此时,在本技术实施例中,可以通过麦克风阵列的声矢量麦克风重新拾取主驾驶位置处用户的语音信号,并根据该信号进行当前声速的计算,即为可以对当前声速进行更新,利用更新后的当前声速进行定向波束的增强,此时得到的增强信号即为对主驾驶位置处用户的语音信号进行增强的信号。也就是说,在本技术实施例中,可以通过麦克风阵列中的声矢量麦克风实时拾取声信号,进而实时调整当前声速,进而可以根据实时调整的声速进行定向波束的增强,使得定向波束增强更为准确。
[0318]
这样,在对全向麦克风拾取的声信号进行定向增强时,所使用的当前声速是通过麦克风阵列中的n个声矢量麦克风拾取的声信号实时计算出的,在当环境变化时,计算出的当前声速会实时动态的调整,从而可以提高对全向麦克风拾取的声信号进行定向增强的准确性。
[0319]
参考图25所示,本技术实施例提供了一种声速估计装置,包括:
[0320]
获取单元2501,用于获取n个声矢量麦克风拾取的声信号。
[0321]
处理单元2502,用于根据n个声矢量麦克风拾取的声信号及n个声矢量麦克风间的距离,估计出当前声速。
[0322]
在本技术实施例中,处理单元2502,具体用于在n个声矢量麦克风中确定出j个目
标声矢量麦克风对;其中,目标声矢量麦克风对中包含的两个声矢量麦克风间的距离在0.02米至5米的距离范围内;j为大于1,且小于等于c(2,n)的整数,其中,c(2,n)表示从n个声矢量麦克风中取出包含两个声矢量麦克风的组合个数;c(2,n)为大于0且小于n的整数。
[0323]
针对j个目标声矢量麦克风对中每个目标声矢量麦克风对,根据该目标声矢量麦克风对中每个声矢量麦克风拾取的声信号,计算该目标声矢量麦克风对中每个声矢量麦克风的波达方向及该目标声矢量麦克风对中两个声矢量麦克风间的声信号拾取时延;根据该目标声矢量麦克风对中每个声矢量麦克风的波达方向及该目标声矢量麦克风对中两个声矢量麦克风间的声信号拾取时延及该目标声矢量麦克风对中两个声矢量麦克风间的距离,计算出目标声速。根据j个目标声速,估计出当前声速。
[0324]
作为一种可能的实现方式,处理单元2502,具体用于确定n个声矢量麦克风中每两个声矢量麦克风间的距离;将距离在0.02米至5米的距离范围内的两个声矢量麦克风确定为一个目标声矢量麦克风对,得到j个目标声矢量麦克风对。
[0325]
作为一种可能的实现方式,处理单元2502,具体用于将距离在0.02米至5米的距离范围内,且与参考距离的数量级相同的两个声矢量麦克风确定为一个目标声矢量麦克风对,得到j个目标声矢量麦克风对。
[0326]
其中,参考距离是指麦克风阵列中心点与目标声源间的距离。
[0327]
作为一种可能的实现方式,处理单元2502,具体用于将该目标声矢量麦克风对中每个声矢量麦克风拾取的声信号变换为第一频域信号,得到该目标声矢量麦克风对中每个声矢量麦克风的h
×
k个时频点的声信号;其中,h表示频点的个数,为大于0整数;k表示帧数,为大于0的整数。针对该目标声矢量麦克风对中每个声矢量麦克风的h
×
k个时频点的声信号中的每个时频点的声信号,根据该时频点的声信号,获取该时频点的声强信息;根据该时频点的声强信息,计算该时频点的波达方向。
[0328]
作为一种可能的实现方式,处理单元2502,具体用于根据该时频点的声信号,利用公式获取该时频点的声强信息;其中,时频点的声信号包括声压及在x轴,y轴,z轴方向上的声信号;i
x
(f,n)表示频点为f、帧数为n的时频点在x轴方向的声强信息;iy(f,n)表示频点为f、帧数为n的时频点在y轴方向的声强信息;iz(f,n)表示频点为f、帧数为n的时频点在z轴方向的声强信息;x
w*
(f,n)表示频点为f、帧数为n的时频点的声压的复共轭;x
x
(f,n)表示频点为f、帧数为n的时频点在x轴方向的声信号;xy(f,n)表示频点为f、帧数为n的时频点在y轴方向的声信号;xz(f,n)表示频点为f、帧数为n的时频点在z轴方向的声信号;f为大于0且不大于h的整数;n为大于0且不大于k的整数。
[0329]
根据该时频点的声强信息,利用公式根据该时频点的声强信息,利用公式计算该时频点的波达方向;其中,表示取实部,φ
(f,n)
表示频点为f、帧数为n的时频点的水平角,θ
(f,n)
表示频点为f、帧数为n的时频点的俯仰角。
[0330]
作为一种可能的实现方式,上述声速估计装置,如图26所示,还包括:
[0331]
确定单元2503,用于根据该时频点的声信号,确定时频点的声信号是否为语音信号。
[0332]
处理单元2502,具体用于在时频点的声信号为语音信号时,根据该时频点的声强信息,计算该时频点的波达方向。
[0333]
作为一种可能的实现方式,处理单元2502,具体用于将该目标声矢量麦克风对中每个声矢量麦克风拾取的声信号变换为第二频域信号,得到该目标声矢量麦克风对中每个声矢量麦克风的k帧第二频域声信号。根据该目标声矢量麦克风对中每个声矢量麦克风的k帧第二频域声信号,通过预设时延算法计算该目标声矢量麦克风对中两个声矢量麦克风拾取每帧第二频域声信号时的时延。
[0334]
作为一种可能的实现方式,预设时延算法包括:广义互相关算法或广义互相关-相位变换算法或基于插值的时延估计算法。
[0335]
作为一种可能的实现方式,处理单元2502,具体用于根据该目标声矢量麦克风对中每个声矢量麦克风的h
×
k个时频点的波达方向、该目标声矢量麦克风对中两个声矢量麦克风拾取每帧第二频域声信号的时延,及该目标声矢量麦克风对中两个声矢量麦克风间的距离,利用公式计算出该目标声矢量麦克风对的对应时频点的目标声速。
[0336]
其中,c
(f,n)
表示目标声速;d表示该目标声矢量麦克风对中两个声矢量麦克风间的距离;τn表示该目标声矢量麦克风对中两个声矢量麦克风间拾取第n帧第二频域声信号时的时延;θ
1(f,n)
表示该目标声矢量麦克风对中一个声矢量麦克风的频点为f、帧数为n的时频点的俯仰角,θ
2(f,n)
表示该目标声矢量麦克风对中另一个声矢量麦克风的频点为f、帧数为n的时频点的俯仰角。
[0337]
作为一种可能的实现方式,处理单元2502,具体用于根据j个目标声速,计算j个目标声速的均值,将j个目标声速的均值确定为当前声速。
[0338]
参考图27所示,本技术实施例提供了一种拾音装置,包括:
[0339]
获取单元2701,用于获取麦克风阵列中n个声矢量麦克风拾取的声信号,并根据n个声矢量麦克风拾取的声信号,获取当前声速。
[0340]
获取单元2701,还用于获取预先设置的麦克风阵列中每个全向麦克风的波达方向。
[0341]
其中,麦克风阵列中包含有至少两个全向麦克风。
[0342]
确定单元2702,用于在至少两个全向麦克风中确定出参考全向麦克风及至少一个增强全向麦克风。
[0343]
确定单元2702,还用于根据至少两个全向麦克风中每个全向麦克风的波达方向,参考全向麦克风与至少一个增强全向麦克风间的距离及所述当前声速,确定至少一个增强全向麦克风的信号时延。
[0344]
处理单元2703,用于根据至少一个增强全向麦克风的信号时延及至少一个增强全向麦克风拾取的声信号,对参考全向麦克风拾取的声信号进行增强处理,得到增强声信号。
[0345]
与上述实施例相对应,本技术还提供了一种电子设备。参见图28所示为本发明实
施例提供的一种电子设备的结构示意图,所述电子设备可以包括:处理器2801、存储器2802及通信单元2803。这些组件通过一条或多条总线进行通信,本领域技术人员可以理解,图中示出的服务器的结构并不构成对本发明实施例的限定,它既可以是总线形结构,也可以是星型结构,还可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
[0346]
其中,所述通信单元2803,用于建立通信信道,从而使所述存储设备可以与其它设备进行通信。接收其他设备发是的用户数据或者向其他设备发送用户数据。
[0347]
所述处理器2801,为存储设备的控制中心,利用各种接口和线路连接整个电子设备的各个部分,通过运行或执行存储在存储器2802内的软件程序和/或模块,以及调用存储在存储器内的数据,以执行电子设备的各种功能和/或处理数据。所述处理器可以由集成电路(integrated circuit,ic)组成,例如可以由单颗封装的ic所组成,也可以由连接多颗相同功能或不同功能的封装ic而组成。举例来说,处理器2801可以仅包括中央处理器(central processing unit,cpu)。在本发明实施方式中,cpu可以是单运算核心,也可以包括多运算核心。
[0348]
所述存储器2802,用于存储处理器2801的执行指令,存储器2802可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(sram),电可擦除可编程只读存储器(eeprom),可擦除可编程只读存储器(eprom),可编程只读存储器(prom),只读存储器(rom),磁存储器,快闪存储器,磁盘或光盘。
[0349]
当存储器2802中的执行指令由处理器2801执行时,使得电子设备能够执行图15或图23所示实施例中的部分或全部步骤。
[0350]
与上述实施例相对应,本技术还提供了另一种电子设备。所述电子设备可以包括:麦克风阵列。其中,所述麦克风阵列为上述图1-图14所述的麦克风阵列。
[0351]
作为一种可能的实现方式,上述电子设备包括车辆或终端设备。其中终端设备可以是话筒,手机,电脑,音响等能够进行语音交互的终端设备。
[0352]
作为一种可能的实现方式,在电子自设备包括车辆时,麦克风阵列的n个声矢量麦克风中至少两个声矢量麦克风间的距离在0.2米至2米的距离范围内。由于车辆的尺寸有限,将麦克风阵列的n个声矢量麦克风中至少两个声矢量麦克风间的距离在0.2米至2米的距离范围内,可以更好的应用到车辆中,从而可以更准确的估计出车辆内的当前声速,在进行定向波束拾取时,提高定向波束拾取的准确性。
[0353]
作为第一可能的实现方式,在电子设备包括终端设备时,麦克风阵列的n个声矢量麦克风中至少两个声矢量麦克风间的距离在0.02米至5米的距离范围内。这样可以更好的应用到终点设备中,从而可以更准确的估计出终端设备所在环境下的当前声速,在进行定向波束拾取时,提高定向波束拾取的准确性。
[0354]
例如,在需要将麦克风阵列应用到话筒内时,由于话筒的尺寸有限,可以设置麦克风阵列内两个声矢量麦克风间的距离为0.3米。在需要将麦克风阵列应用到音响内时,可以将麦克风阵列应用到多个音响,即为每个音响内设置有一个声矢量麦克风,通过至少两个音响内的声矢量麦克风形成麦克风阵列。此时,两个音响间的距离可以根据用户的实际使用需求进行设置,可以设置为1米,也可以设置为2.5米或是5米。
[0355]
具体实现中,本发明还提供一种计算机存储介质,其中,该计算机存储介质可存储
有程序,该程序执行时可包括本发明提供的声速估计方法或拾音方法的各实施例中的部分或全部步骤。所述的存储介质可为磁碟、光盘、只读存储记忆体(read-only memory,rom)或随机存储记忆体(random access memory,ram)等。
[0356]
本领域的技术人员可以清楚地了解到本发明实施例中的技术可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明实施例中的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。
[0357]
本说明书中各个实施例之间相同相似的部分互相参见即可。尤其,对于装置实施例和终端实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例中的说明即可。
技术特征:
1.一种麦克风阵列,其特征在于,包括:n个声矢量麦克风,用于拾取目标声源的声信号;其中,所述n个声矢量麦克风中至少两个声矢量麦克风间的距离在0.02米至5米的距离范围内,n为大于1的整数。2.根据权利要求1所述的麦克风阵列,其特征在于,所述n个声矢量麦克风位于同一平面内。3.根据权利要求2所述的麦克风阵列,其特征在于,所述n个声矢量麦克风呈线性排布。4.根据权利要求3所述的麦克风阵列,其特征在于,在所述n个声矢量麦克风中每个声矢量麦克风与相邻矢量麦克风间的距离相同。5.根据权利要求3所述的麦克风阵列,其特征在于,在所述n个声矢量麦克风中两两相邻的声矢量麦克风间的距离不完全相等。6.根据权利要求2所述的麦克风阵列,其特征在于,所述n个声矢量麦克风包括第一声矢量麦克风,第二声矢量麦克风及第三声矢量麦克风,所述第三声矢量麦克风及所述第一声矢量麦克风所在的直线与所述第一声矢量麦克风及所述第二声矢量麦克风所在的直线之间的夹角大于0度,且小于180度。7.根据权利要求1所述的麦克风阵列,其特征在于,所述n个声矢量麦克风呈立体排布。8.根据权利要求1至7中任一所述的麦克风阵列,其特征在于,还包括:至少两个全向麦克风。9.根据权利要求8所述的麦克风阵列,其特征在于,所述至少两个全向麦克风位于所述n个声矢量麦克风之间。10.根据权利要求8所述的麦克风阵列,其特征在于,还包括:处理单元;所述处理单元,用于获取所述n个声矢量麦克风拾取的声信号,根据所述n个声矢量麦克风拾取的声信号及n个声矢量麦克风间的距离,计算出当前声速,并输出所述当前声速。11.根据权利要求10所述的麦克风阵列,其特征在于,所述处理单元,具体用于在所述n个声矢量麦克风中确定出j个目标声矢量麦克风对;其中,每个目标声矢量麦克风对中包含的两个声矢量麦克风间的距离在0.02米至5米的距离范围内;j为大于1且小于等于c(2,n)的整数,其中,所述c(2,n)表示从n个声矢量麦克风中取出包含两个声矢量麦克风的组合个数,c(2,n)为大于0且小于n的整数;针对所述j个目标声矢量麦克风对中每个目标声矢量麦克风对,根据该目标声矢量麦克风对中每个声矢量麦克风拾取的声信号,计算该目标声矢量麦克风对中每个声矢量麦克风的波达方向及该目标声矢量麦克风对中两个声矢量麦克风间的声信号拾取时延;根据该目标声矢量麦克风对中每个声矢量麦克风的波达方向及该目标声矢量麦克风对中两个声矢量麦克风间的声信号拾取时延及该目标声矢量麦克风对中两个声矢量麦克风间的距离,计算出目标声速;根据j个目标声速,计算当前声速,并输出当前声速。12.根据权利要求11所述的麦克风阵列,其特征在于,每个目标声矢量麦克风对中包含的两个声矢量麦克风间的距离与参考距离的数量级相同;其中,所述参考距离是指目标声源与麦克风阵列中心点间的距离。13.根据权利要求10-12任一项所述的麦克风阵列,其特征在于,
所述处理单元,还用于获取预设设置的至少两个全向麦克风中每个全向麦克风的波达方向;在至少两个全向麦克风中确定出参考全向麦克风及至少一个增强全向麦克风;根据所述至少两个全向麦克风中每个全向麦克风的波达方向,所述参考全向麦克风与所述至少一个增强全向麦克风间的距离及所述当前声速,确定所述至少一个增强全向麦克风的信号时延;根据所述至少一个增强全向麦克风的信号时延及所述至少一个增强全向麦克风拾取的声信号,对所述参考全向麦克风拾取的声信号进行增强处理,得到增强声信号。14.一种麦克风阵列,其特征在于,包括:n个声矢量麦克风,用于拾取目标声源的声信号;其中,所述n个声矢量麦克风中至少两个声矢量麦克风间的距离与参考距离的数量级相同;所述参考距离是指所述麦克风阵列中心点与目标声源间的距离;n为大于1的整数。15.一种声速估计方法,其特征在于,应用于权利要求1-14任一项所述的麦克风阵列,所述方法包括:获取n个声矢量麦克风拾取的声信号;根据n个声矢量麦克风拾取的声信号及n个声矢量麦克风间的距离,估计出当前声速。16.根据权利要求15所述的方法,其特征在于,所述根据n个声矢量麦克风拾取的声信号及n个声矢量麦克风间的距离,估计出当前声速包括:在所述n个声矢量麦克风中确定出j个目标声矢量麦克风对;其中,目标声矢量麦克风对中包含的两个声矢量麦克风间的距离在0.02米至5米的距离范围内;j为大于1,且小于等于c(2,n)的整数,其中,所述c(2,n)表示从n个声矢量麦克风中取出包含两个声矢量麦克风的组合个数,c(2,n)为大于0且小于n的整数;针对所述j个目标声矢量麦克风对中每个目标声矢量麦克风对,根据该目标声矢量麦克风对中每个声矢量麦克风拾取的声信号,计算该目标声矢量麦克风对中每个声矢量麦克风的波达方向及该目标声矢量麦克风对中两个声矢量麦克风间的声信号拾取时延;根据该目标声矢量麦克风对中每个声矢量麦克风的波达方向及该目标声矢量麦克风对中两个声矢量麦克风间的声信号拾取时延及该目标声矢量麦克风对中两个声矢量麦克风间的距离,计算出目标声速;根据j个目标声速,估计出当前声速。17.根据权利要求16所述的方法,其特征在于,所述在所述n个声矢量麦克风中确定出j个目标声矢量麦克风对包括:确定所述n个声矢量麦克风中每两个声矢量麦克风间的距离;将距离在0.02米至5米的距离范围内的两个声矢量麦克风确定为一个目标声矢量麦克风对,得到j个目标声矢量麦克风对。18.根据权利要求17所述的方法,其特征在于,所述将距离在0.02米至5米的距离范围内的两个声矢量麦克风确定为一个目标声矢量麦克风对,得到j个目标声矢量麦克风对包括:将距离在0.02米至5米的距离范围内,且与参考距离的数量级相同的两个声矢量麦克风确定为一个目标声矢量麦克风对,得到j个目标声矢量麦克风对;其中,所述参考距离是
指所述麦克风阵列中心点与目标声源间的距离。19.根据权利要求16-18任一项所述的方法,其特征在于,所述根据该目标声矢量麦克风对中每个声矢量麦克风拾取的声信号,计算该目标声矢量麦克风对中每个声矢量麦克风的波达方向包括:将该目标声矢量麦克风对中每个声矢量麦克风拾取的声信号变换为第一频域信号,得到该目标声矢量麦克风对中每个声矢量麦克风的h
×
k个时频点的声信号;其中,h表示频点的个数,为大于0整数;k表示帧数,为大于0的整数;针对该目标声矢量麦克风对中每个声矢量麦克风的h
×
k个时频点的声信号中的每个时频点的声信号,根据该时频点的声信号,获取该时频点的声强信息;根据该时频点的声强信息,计算该时频点的波达方向。20.根据权利要求19所述的方法,其特征在于,所述根据该时频点的声信号,获取该时频点的声强信息包括:根据该时频点的声信号,利用公式获取该时频点的声强信息;其中,时频点的声信号包括声压及在x轴,y轴,z轴方向上的声信号;i
x
(f,n)表示频点为f、帧数为n的时频点在x轴方向的声强信息;i
y
(f,n)表示频点为f、帧数为n的时频点在y轴方向的声强信息;i
z
(f,n)表示频点为f、帧数为n的时频点在z轴方向的声强信息;x
w*
(f,n)表示频点为f、帧数为n的时频点的声压的复共轭;x
x
(f,n)表示频点为f、帧数为n的时频点在x轴方向的声信号;x
y
(f,n)表示频点为f、帧数为n的时频点在y轴方向的声信号;x
z
(f,n)表示频点为f、帧数为n的时频点在z轴方向的声信号;f为大于0且不大于h的整数;n为大于0且不大于k的整数;所述根据该时频点的声强信息,计算该时频点的波达方向包括:根据该时频点的声强信息,利用公式根据该时频点的声强信息,利用公式计算该时频点的波达方向;其中,表示取实部,φ
(f,n)
表示频点为f、帧数为n的时频点的水平角,θ
(f,n)
表示频点为f、帧数为n的时频点的俯仰角。21.根据权利要求19所述的方法,其特征在于,在所述根据该时频点的声强信息,计算该时频点的波达方向之前,还包括:根据该时频点的声信号,确定所述时频点的声信号是否为语音信号;所述根据该时频点的声强信息,计算该时频点的波达方向包括:在所述时频点的声信号为语音信号时,根据该时频点的声强信息,计算该时频点的波达方向。22.根据权利要求19所述的方法,其特征在于,所述根据该目标声矢量麦克风对中每个声矢量麦克风拾取的声信号,计算该目标声矢量麦克风对中两个声矢量麦克风间的声信号拾取时延包括:
将该目标声矢量麦克风对中每个声矢量麦克风拾取的声信号变换为第二频域信号,得到该目标声矢量麦克风对中每个声矢量麦克风的k帧第二频域声信号;根据该目标声矢量麦克风对中每个声矢量麦克风的k帧第二频域声信号,通过预设时延算法计算该目标声矢量麦克风对中两个声矢量麦克风拾取每帧第二频域声信号时的时延。23.根据权利要求22所述的方法,其特征在于,所述预设时延算法包括:广义互相关算法或广义互相关-相位变换算法或基于插值的时延估计算法。24.根据权利要求22或23所述的方法,其特征在于,所述根据该目标声矢量麦克风对中每个声矢量麦克风的波达方向及该目标声矢量麦克风对中两个声矢量麦克风间拾取声信号的时延及该目标声矢量麦克风对中两个声矢量麦克风间的距离,计算出目标声速包括:根据该目标声矢量麦克风对中每个声矢量麦克风的h
×
k个时频点的波达方向、该目标声矢量麦克风对中两个声矢量麦克风拾取每帧第二频域声信号的时延,及该目标声矢量麦克风对中两个声矢量麦克风间的距离,利用公式计算出该目标声矢量麦克风对的对应时频点的目标声速;其中,c
(f,n)
表示目标声速;d表示该目标声矢量麦克风对中两个声矢量麦克风间的距离;τ
n
表示该目标声矢量麦克风对中两个声矢量麦克风间拾取第n帧第二频域声信号时的时延;θ
1(f,n)
表示该目标声矢量麦克风对中一个声矢量麦克风的频点为f、帧数为n的时频点的俯仰角,θ
2(f,n)
表示该目标声矢量麦克风对中另一个声矢量麦克风的频点为f、帧数为n的时频点的俯仰角。25.根据权利要求16-18任一项所述的方法,其特征在于,所述根据j个目标声速,估计出当前声速包括:根据j个目标声速,计算j个目标声速的均值,将所述j个目标声速的均值确定为当前声速。26.一种拾音方法,其特征在于,应用于权利要求1-13任一项所述的麦克风阵列,所述方法包括:获取麦克风阵列中n个声矢量麦克风拾取的声信号,并根据n个声矢量麦克风拾取的声信号,获取当前声速;获取预先设置的麦克风阵列中每个全向麦克风的波达方向;其中,所述麦克风阵列中包含有至少两个全向麦克风;在至少两个全向麦克风中确定出参考全向麦克风及至少一个增强全向麦克风;根据所述至少两个全向麦克风中每个全向麦克风的波达方向,所述参考全向麦克风与所述至少一个增强全向麦克风间的距离及所述当前声速,确定所述至少一个增强全向麦克风的信号时延;根据所述至少一个增强全向麦克风的信号时延及所述至少一个增强全向麦克风拾取的声信号,对所述参考全向麦克风拾取的声信号进行增强处理,得到增强声信号。27.一种声速估计装置,其特征在于,包括:获取单元,用于获取n个声矢量麦克风拾取的声信号;处理单元,用于根据n个声矢量麦克风拾取的声信号及n个声矢量麦克风间的距离,估
计出当前声速。28.一种拾音装置,其特征在于,包括:获取单元,用于获取麦克风阵列中n个声矢量麦克风拾取的声信号,并根据n个声矢量麦克风拾取的声信号,获取当前声速;获取单元,还用于获取预先设置的麦克风阵列中每个全向麦克风的波达方向;其中,所述麦克风阵列中包含有至少两个全向麦克风;确定单元,用于在至少两个全向麦克风中确定出参考全向麦克风及至少一个增强全向麦克风;确定单元,还用于根据所述至少两个全向麦克风中每个全向麦克风的波达方向,所述参考全向麦克风与所述至少一个增强全向麦克风间的距离及所述当前声速,确定所述至少一个增强全向麦克风的信号时延;处理单元,用于根据所述至少一个增强全向麦克风的信号时延及所述至少一个增强全向麦克风拾取的声信号,对所述参考全向麦克风拾取的声信号进行增强处理,得到增强声信号。29.一种电子设备,其特征在于,包括用于存储计算机程序指令的存储器和用于执行程序指令的处理器,其中,当该计算机程序指令被所述处理器执行时,触发所述电子设备执行权利要求15-25任一项所述的方法,或执行权利要求26所述的方法。30.一种电子设备,其特征在于,包括如权利要求1-13任一项所述的麦克风阵列。31.根据权利要求30所述的电子设备,其特征在于,所述电子设备包括车辆或终端设备。32.根据权利要求31所述的电子设备,其特征在于,在电子设备包括车辆时,所述麦克风阵列的n个声矢量麦克风中至少两个声矢量麦克风间的距离在0.2米至2米的距离范围内。33.根据权利要求31所述的电子设备,其特征在于,在电子设备包括终端设备时,所述麦克风阵列的n个声矢量麦克风中至少两个声矢量麦克风间的距离在0.02米至5米的距离范围内。34.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质包括存储的程序,其中,在所述程序运行时控制所述计算机可读存储介质所在设备执行权利要求15-25中任意一项所述的方法,或执行权利要求26所述的方法。
技术总结
本申请实施例提供的一种麦克风阵列、声速估计方法、拾音方法及相关装置、设备,应用于语音技术领域,所述麦克风阵列包括:N个声矢量麦克风,用于拾取目标声源的声信号;其中,所述N个声矢量麦克风中至少两个声矢量麦克风间的距离在0.02米至5米的距离范围内,N为大于1的整数。用于提高声速估计的准确性及实时性。整数。用于提高声速估计的准确性及实时性。整数。用于提高声速估计的准确性及实时性。
技术研发人员:石超宇 朱梦尧 朱冰 王贤锐 张雯 陈景东
受保护的技术使用者:华为技术有限公司
技术研发日:2022.02.24
技术公布日:2023/9/7
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
飞机超市 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/