用于传送数字音频流的无线电设备的制作方法

文档序号:29463376发布日期:2022-04-02 02:24阅读:174来源:国知局
用于传送数字音频流的无线电设备的制作方法
用于传送数字音频流的无线电设备


背景技术:

1.本发明涉及用于传送数字音频流的无线电设备和方法。
2.众所周知,通过无线电通信链路(如蓝牙
tm
或wifi信道)传输数字音频流(如mpeg或aptx编码流),用于基本实时的输出(即,在接收装置上具有最小的缓冲)。此类技术可用于无线电话耳机、无线耳机、无线扬声器等。
3.然而,当发送装置和接收装置不包含同步时钟时,要确保以避免引入可听假象的速率将接收到的数字音频流转换为模拟信号(或以其他方式处理)并不简单。例如,由于缓冲区欠载,或者由于为了避免缓冲区欠载而对输出速率进行的突然改变,可能会出现此类假象。
4.本发明旨在解决这个问题。


技术实现要素:

5.根据第一方面,本发明提供了一种包括无线电发射机设备和第一无线电接收机设备的无线电通信系统,
6.其中所述无线电发射机设备被配置为以固定间隔向所述第一无线电接收机设备发送无线电数据分组序列,所述无线电数据分组序列对数字音频流进行编码,其中每个无线电数据分组对来自所述数字音频流的相应数量的音频样本进行编码,以及
7.其中,所述第一无线电接收机设备包括:
8.无线电电路,其用于接收所述无线电数据分组序列;
9.数字音频接口,其用于从接收到的数字音频流中输出音频样本;
10.可控振荡器,其被配置为控制从所述数字音频接口输出所述音频样本的输出速率;
11.定时器;以及
12.控制逻辑,其被配置为使用定时器来测量接收一对无线电数据分组中的每一个之间的间隔,并在输出来自一个无线电数据分组的音频样本的同时,控制振荡器以多个步长递增地改变所述输出速率,其中所述步长的数量或者每个步长的大小或者两者都取决于所述测量间隔。
13.根据第二方面,本发明提供一种无线电接收机设备,其包括:
14.无线电电路,其用于接收以固定间隔发送的无线电数据分组序列,所述无线电数据分组序列对数字音频流进行编码,其中每个无线电数据分组对来自所述数字音频流的相应数量的音频样本进行编码;
15.数字音频接口,其用于从接收到的数字音频流中输出音频样本;
16.可控振荡器,其被配置为控制从所述数字音频接口输出所述音频样本的输出速率;
17.定时器;以及
18.控制逻辑,其被配置为使用定时器来测量接收一对无线电数据分组中的每一个之
间的间隔,并在输出来自一个无线电数据分组的音频样本的同时,控制振荡器以多个步长递增地改变所述输出速率,其中所述步长的数量或者每个步长的大小或者两者都取决于所述测量间隔。
19.根据第三方面,本发明提供一种处理数字音频流的方法,该方法包括:
20.接收以固定间隔发送的无线电数据分组序列,所述无线电数据分组序列对数字音频流进行编码,其中每个无线电数据分组对来自所述数字音频流的相应数量的音频样本进行编码;
21.以可变输出速率从接收到的数字音频流中输出音频样本;
22.测量接收一对无线电数据分组中的每一个之间的间隔;以及
23.在输出来自一个无线电数据分组的音频样本的同时,以多个步长递增地调整所述输出速率,其中所述步长的数量或者每个步长的大小或者两者都取决于所述测量间隔。
24.因此可以得知,根据本发明,来自单个数据分组的音频样本以在适当时可以在单个包的过程中改变的速率输出,其中输出速率的变化率取决于在输入无线电数据分组之间的测量间隔。这样,接收机可以通过在单个包的范围内校正输出速率来避免缓冲区欠载或缓冲区溢出,同时避免输出速率的突然变化。至少在一些实施例中,接收机还能够比使用异步采样率转换器的装置更有效地控制音频输出速率(例如,使用更低的功耗)。
25.在一些实施例中,至少对于一个或多个接收到的无线电数据分组而言,步长数量(当不为零时)可以低至一个步长。然而,在优选实施例中,在输出来自一个无线电数据分组的音频样本的同时,控制逻辑能够控制振荡器以多个步长改变输出速率,例如,在输出包含在一个数据分组中的音频样本的同时,将输出速率改变至少两次、十次、一百次或一千次。通过使输出速率在一个数据分组的持续时间内更接近线性地变化,大量的步长减少了由于输出速率中的步长变化而导致的任何假象。
26.在一些实施例中,在输出来自一个无线电数据分组的音频样本的同时,步长大小和/或步长数量是固定的。控制逻辑可以被配置为确定用于从每个连续的无线电数据分组输出音频样本的相应步长大小和/或相应的步长数量。
27.在一些实施例中,控制逻辑可以被配置为在开始输出来自每个连续无线电数据分组的频样本之前或之时重复确定步长数量。
28.在某些情况下,可能不需要更改输出速率;因此,对于一些数据分组,步长大小和/或步长数量可以设置为零。
29.可控振荡器可以提供用于从控制逻辑接收数据的接口(例如,寄存器接口),该数据代表步长大小和/或步长数量。振荡器可以包括用于根据接收到的步长大小和步长数量,例如在预定周期(例如,包含在一个数据分组中的音频流的标称持续时间)内对其输出速率进行增量改变的电路。在一些实施例中,可控振荡器可以提供用于配置步长间隔的接口。步长间隔可以从一组步长间隔值中选择。步长间隔是可配置的,以便当步长大小为非零时,其在接收该对无线电数据分组之间的间隔上对应于大约100个步长和大约1000个步长之间。
30.可控振荡器可以包括∑-δ调制器。
31.接收机可以包括用于控制来自数字音频接口的音频样本的输出的接口电路(例如i2s外围设备)。可控振荡器可以向音频接口电路输出周期性信号,这样可以确定来自数字音频接口的输出速率。音频接口电路可以将输出速率设置为等于周期性信号的频率,或者
设置为该频率的预定倍数或分数。
32.数字音频接口可以是接收机设备的外部接口,例如s/pdif(索尼/飞利浦数字接口)端口。然而,在其他实施例中,该数字音频接口是内部接口(例如,到接收机设备的集成电路内置音频总线(i2s)总线的连接),其可用于将音频样本输出到接收机设备的另一组件(例如,到接收机设备内的数模转换器(dac))。
33.在一些实施例中,无线电接收机设备包括dac、放大器和声换能器(如扬声器),用于将音频流作为声音输出。无线电接收机设备可以是或包括无线头戴式耳机、无线耳机、无线扬声器、智能手机、家庭助理或任何其他具有音频输出功能的装置。
34.无线电发射机设备可以是或包括服务器、路由器、电视、智能手机、蜂窝网络基站或任何其他适当的装置或设备。
35.无线电发射机设备和无线电接收机设备可以是不同步的(除了通过无线电数据分组的周期性传输)。这两个设备可以包括彼此不同步的相应时钟。接收机设备可以使用其非同步时钟来向无线电电路和/或控制逻辑中的数字逻辑提供时钟信号。
36.在一些实施例中,无线电数据分组序列的每个无线电数据分组可以对来自数字音频流的相同数量的音频样本进行编码。
37.该对接收到的无线电数据分组可以是无线电数据分组序列的相邻无线电数据分组,尽管这不是必须的。这些无线电数据分组可能是该序列中最近收到的两个无线电数据分组。
38.该间隔可以在第一无线电数据分组内的第一元素的接收时间和第二无线电数据分组内的第二元素的接收时间之间。第一和第二元素可以与相应的数据分组具有共同的位置。这些元素可以是相应数据分组内的地址字段。以这种方式,可以在序列内的多对数据分组之间一致地对间隔进行定时。
39.可以测量接收序列内每对相邻无线电数据分组之间的间隔。每个间隔可用于调整用于输出无线电数据分组的音频样本的可变输出速率,该无线电数据分组可以是相应对的无线电数据分组的其中之一(例如,该对中稍后接收到的数据分组),或另一个随后接收到的无线电数据分组。
40.定时器可以包括硬件定时器电路或基于软件的定时器。硬件定时器可以提供更高的准确性。
41.控制逻辑可以被配置为在每次接收到该序列的无线电数据分组时重复确定是否调整输出速率。
42.控制逻辑可以包括硬连线控制电路(即数字逻辑)。然而,在一些实施例中,接收机设备包括处理器(例如,arm
tm cortex-m
tm
处理器)和存储用于由处理器执行的软件的存储器。控制逻辑可以至少部分地由所述软件实现。
43.控制逻辑可以通过将代表步长数量的值和/或代表步长大小的值写入可控振荡器的一个或多个寄存器来控制振荡器。
44.振荡器可以具有起始频率,其是可配置的(例如,通过将其写入振荡器的寄存器)。控制逻辑可以为数字音频流设置一次起始频率(例如,在接收该数字音频流的第一个数据分组之前)。然后,当需要时,它可以在音频流的持续时间内,通过控制在无线电数据分组序列的每个数据分组上待执行的步长大小和步长数量来递增地调整输出速率。
45.接收机设备可以被配置为测量输出音频样本的一对帧中的每一个之间的间隔,其中每一帧由包含在相应无线电数据分组中的音频样本组成。步长数量或每个步长的大小或两者都可以进一步取决于一对输出帧之间的测量间隔。接收机可以使用硬件定时器来进行该测量。这对帧可以是音频流的相邻帧,但这不是必须的。该间隔可以在第一帧内的第一元素的输出与第二帧内的第二元素的输出时间之间。第一和第二元素可以与相应的帧具有共同的位置。这些元素可能是每一帧的第一样本。
46.控制逻辑可以被配置为将接收该对无线电数据分组中的每一个之间的间隔与输出包含在这些无线电数据分组中或包含在第二对无线电数据分组中的音频样本之间的间隔进行比较。该第二对数据分组可以具有与第一对数据分组相同的一个无线电数据分组,或者可以由两个另外的数据分组(例如,两个较早接收的数据分组)组成。在一些情况下,使用相同的两个无线电数据分组可能是有利的,因为这些分组之间的间隔可以捕获在相应的音频样本被生成或处理用于传输时发生的发射机设备的时钟速率的任何短期变化。如果使用较早的无线电数据分组间隔,或者如果在多个无线电数据分组上测量该间隔,那么可能会错过这种变化,从而导致采样率重建不太精确。
47.控制逻辑可以计算步长大小和/或步长数量,以便给出时间窗口上的平均(平均)输出速率,该输出速率等于与时间窗口持续时间相同的间隔上的传输速率(但是可能在时间上偏离时间窗口)。时间窗口的持续时间可以等于(未压缩的)数字音频流的持续时间或任何其他持续时间,其中该数字音频流由两个无线电数据分组或一个无线电数据分组传送。针对两个无线电数据分组的正确平均速率允许一个完整无线电数据分组的缓冲延迟,这可能有助于确保不间断的音频输出。
48.在一些实施例中,控制逻辑可以被配置为确定达到最小步长大小的期望输出速率的步长大小和/或步长数量,受到由设备设置的步长大小和/或步长间隔的任何限制。该控制逻辑可以控制振荡器使用该步长大小和/或步长数量。在步长大小和步长间隔的一种以上组合将达到所需输出速率的情况下,这可能有助于减少声音失真。
49.数字音频流可以被压缩在无线电数据分组内。该数字音频流可以根据mpeg、aptx或其他音频流协议进行压缩。接收机设备可以包括用于对音频样本进行解压的电路和/或软件。
50.无线电数据分组的结构和/或无线电发射机和接收机使用的无线电通信协议可以部分或全部符合蓝牙
tm
或蓝牙
tm
低功耗规范的版本。数字音频流可以通过一个或多个蓝牙
tm
低功耗同步信道传输。
51.接收机设备可以包括缓冲存储器,用于在从数字音频接口输出音频样本之前缓冲来自接收到的数字音频流的音频样本。缓冲存储器可以从解压单元或编解码器接收音频样本。可以将缓冲存储器的大小设置为保存来自至少一个、两个或更多个无线电数据分组的音频样本。该缓冲存储器可以包括一组(例如一对)缓冲器(例如先进先出缓冲器),这些缓冲器可以循环地或交替地用于缓冲来自相应连续无线电数据分组的音频样本。一对缓冲器(每个缓冲器的大小都正好保存来自一个无线电数据分组的音频样本)可以特别节省内存,同时避免缓冲区欠载。
52.在一些实施例中,无线电通信系统可以包括第二无线电接收机设备。该系统可以被配置成从无线电发射机设备接收第二音频流。例如,第一接收机可以接收立体声音频流
的左流,而第二接收机可以接收右流。第二接收机可以具有本文在第一无线电接收机的上下文中公开的任何特征。两个接收机都可以将其音频输出速率与发送机设备的传输速率保持一致。每个无线电接收机可以被配置为在接收到序列的第一无线电数据分组之后,以相同的预定间隔开始输出音频流。因此,这两个流可以在音频流的持续时间内保持对齐。该系统可以包括另外的接收机,例如作为杜比
tm
5.1环绕声系统的一部分。
53.在一些实施例中,无线电接收机设备可以是无线电收发机设备。该设备还可以被配置为发送用于对输出数字音频流进行编码的输出无线电数据分组序列。每个输出无线电数据分组可以对来自输出数字音频流的相应数量的音频样本进行编码,该数量可以是流上的常数。输出无线电数据分组可以被发送到上述无线电发射机设备,或不同的设备。无线电接收机设备可以包括麦克风或用于生成输出数字音频流的其他音频输入。这种布置在例如需要全双工或半双工电信支持的情况下可能是有用的,例如在语音控制的家庭助理设备中。
54.无线电收发机设备可以包括用于接收音频样本以在输出数字音频流中传输的数字音频接口,以及用于缓冲在输出数字音频接口处接收的音频样本的缓冲存储器。该设备可以包括可控振荡器(其可以是上述可控振荡器或不同的振荡器),其被配置为控制将音频样本输入到缓冲存储器的缓冲速率。该设备可以包括控制逻辑,该控制逻辑被配置为在将一个无线电数据分组的音频样本输入到缓冲存储器同时,控制振荡器以多个步长递增地改变所述输出速率。步长数量或每个步长的大小或两者都可以取决于前述的测量间隔。
55.在一些实施例中,无线电收发机设备根本不需要接收和处理输入的数字音频流。
56.因此,从另一方面来看,本发明提供了一种包括无线电发射机设备和无线电收发机设备的无线电通信系统,
57.其中所述无线电发射机设备被配置为以固定间隔向所述无线电收发机设备发送无线电数据分组序列,
58.其中,所述无线电收发机设备包括:
59.无线电接收电路,其用于接收输入无线电数据分组序列;
60.无线电发射电路,其用于发射对输出数字音频流进行编码的输出无线电数据分组序列,其中所述输出无线电数据分组序列的每个相应输出无线电数据分组对应于所述输入无线电数据分组序列的相应输入无线电数据分组;
61.数字音频接口,其用于接收音频样本以在输出数字音频流中传输;
62.缓冲存储器,其用于缓冲在数字音频接口处接收到的音频样本;
63.可控振荡器,其被配置为控制将音频样本输入到缓冲存储器的缓冲速率;
64.定时器;以及
65.控制逻辑,其被配置为使用定时器来测量接收一对输入无线电数据分组中的每一个之间的间隔,并在将一个无线电数据分组的音频样本输入到缓冲存储器的同时,控制振荡器以多个步长递增地改变所述缓冲速率,其中所述步长的数量或者每个步长的大小或者两者都取决于所述测量间隔。
66.从另一方面来看,本发明提供一种无线电收发机设备,包括:
67.无线电接收电路,其用于接收以固定间隔发射的输入无线电数据分组序列;
68.无线电发射电路,其用于发射对输出数字音频流进行编码的输出无线电数据分组
序列,其中所述输出无线电数据分组序列的每个相应输出无线电数据分组对应于所述输入无线电数据分组序列的相应输入无线电数据分组;
69.数字音频接口,其用于接收音频样本以在输出数字音频流中传输;
70.缓冲存储器,其用于缓冲在数字音频接口处接收到的音频样本;
71.可控振荡器,其被配置为控制将音频样本输入到缓冲存储器的缓冲速率;
72.定时器;以及
73.控制逻辑,其被配置为使用定时器来测量接收一对输入无线电数据分组中的每一个之间的间隔,并在将一个无线电数据分组的音频样本输入到缓冲存储器的同时,控制振荡器以多个步长递增地改变所述缓冲速率,其中所述步长的数量或者每个步长的大小或者两者都取决于所述测量间隔。
74.从另一方面来看,本发明提供了一种发射数字音频流的方法,该方法包括:
75.接收以固定间隔发射的输入无线电数据分组序列;
76.测量接收一对输入无线电数据分组中的每一个之间的间隔;
77.以可变缓冲速率将输出数字音频流的音频样本输入到缓冲存储器;
78.发射对输出数字音频流进行编码的输出无线电数据分组序列,其中每个输出无线电数据分组对相应数量的缓冲音频样本进行编码,并且其中所述输出无线电数据分组序列的每个相应输出无线电数据分组对应于所述输入无线电数据分组序列的相应输入无线电数据分组;以及
79.在将一个无线电数据分组的音频样本输入到缓冲存储器的同时,以多个步长递增地改变所述缓冲速率,其中所述步长的数量或者每个步长的大小或者两者都取决于所述测量间隔。
80.无线电接收机设备可以具有参考前述方面的无线电接收机设备公开的一些或任何特征。输出数字音频流可以通过一个或多个蓝牙
tm
低功耗同步信道传输。
81.可以响应或回复每个输入无线电数据分组来发送相应的输出无线电数据分组。接收输入无线电数据分组和发射相应输出无线电数据分组之间的时间间隔可以是恒定的或可变的,但优选地总是小于连续输入无线电数据分组之间的间隔。
82.可以将缓冲存储器的大小设置为保存至少一个、两个或更多个输出无线电数据分组的音频样本。该缓冲存储器可以包括一组(例如一对)缓冲器(例如先进先出缓冲器),这些缓冲器可以循环地或交替地用于缓冲相应连续输出无线电数据分组的音频样本。一对缓冲器(每个缓冲器的大小都正好保存一个无线电数据分组的音频样本)可以特别节省内存,同时避免缓冲区欠载。
83.音频样本可以从缓冲存储器输出到压缩单元或编解码器,用于在输出数字音频样本被无线电发射电路发射之前对其进行压缩。
84.数字音频接口可以被配置为接收来自数字麦克风、模数转换器(adc)或另一个数字音频源的音频样本,其中的任何一个都可以位于无线电收发机设备的内部或外部。振荡器可以通过将时钟信号输出到音频供应组件(如数字麦克风或adc)来控制缓冲速率,该音频供应组件可用于控制在数字音频接口处接收音频样本的速率。
85.输入无线电数据分组序列可以具有空的数据有效载荷,或者可以只包含非音频数据。然而,在一些实施例中,输入无线电数据分组序列可以对数字音频流进行编码,该数字
音频流可以由无线电收发机处理,或者可以被无线电收发机忽略(例如,用于不同的设备)。
86.在一些实施例中,用于控制输出音频样本的缓冲速率的可控振荡器也可以用于控制从设备的数字音频输出接口输出输入数字音频流的输入音频样本的输出速率。输出速率可以与缓冲速率相同(例如,如果输入和输出音频流具有相同的比特率),或者在输出速率和缓冲速率之间可以存在恒定比率。相同的数字音频接口可以用于输入和输出音频样本,或者可以存在不同的相应接口。
87.在本文公开的任何实施例中,发射机、接收机或收发机装置可以包括以下中的任何一个或多个:处理器、电源、数字逻辑、dsp、asic、易失性存储器、非易失性存储器(例如,用于存储软件和/或持久性数据)、有源电子组件、无源电子组件、天线、放大器、滤波器、定时器、输入、输出等。
88.本文所述的任何方面或实施例的特征可以在适当的情况下应用于本文所述的任何其它方面或实施例。在参考不同的实施例或实施例集合时,应理解,这些实施例未必是不同的,而是可以重叠的。
附图说明
89.现将参考附图仅借助于实例来描述本发明的某些优选实施例,在附图中:
90.图1是体现本发明的音频分配系统的示意图;
91.图2是体现本发明的接收机设备的示意图;
92.图3是示出根据本发明实施例接收和处理的无线电数据分组的时序图;
93.图4是接收机设备的软件和硬件架构的元件的示意图;
94.图5是接收机设备的可控振荡器的示意图;
95.图6是可控振荡器的输出频率随时间变化的曲线图;
96.图7是由在接收机设备中运行的软件进行的步骤的流程图;以及
97.图8是体现本发明的音频记录设备的软件和硬件架构的元件的示意图。
具体实施方式
98.图1示出了用于从服务器1向一对无线扬声器2a、2b分发立体声音频流的系统。服务器1将编码在第一无线电数据分组序列中的左音频流发送到第一无线扬声器2a,并将编码在第二无线电数据分组序列中的右音频流发送到第二无线扬声器2b。
99.服务器1可以使用任何适当的无线电协议发送无线电数据分组。数据分组结构可以由协议规定。在一组实施例中,数据分组符合蓝牙
tm
低功耗协议的一个版本。
100.重要的是,两个扬声器2a、2b以正确的速度准确地回放左右音频流,以便左右音频输出正确同步。
101.扬声器2a、2b没有已经与服务器1精确同步的内部时钟。相反,它们使用无线电数据分组流本身的时间来控制音频回放的速度,如下所述。
102.图2提供了扬声器2的一些内部硬件组件的更多细节。两个扬声器2a、2b具有基本相同的硬件和软件(尽管它们的功能不同,例如,如果无线电协议要求扬声器2a、2b中的一个充当主要角色而另一个充当次要角色)。
103.扬声器2在外壳3内包含无线电微控制器芯片4、音频微控制器芯片5以及其他组件
6-11。
104.无线电芯片4支持蓝牙
tm
低功耗通信。该芯片还可以支持其他无线电协议,例如ieee 802.11、3gpp lte cat-m1、3gpp lte nb-iot、ieee 802.15.4、zigbee
tm
、thread
tm
、ant
tm
等。该芯片包含无线电接收机电路,包括低噪声放大器(lna)13、本地振荡器(lo)14、用于下混频输入射频信号的正交混频器15、信号滤波16、模数转换器(adc)17、无线电存储器18和无线电处理器19。无线电存储器18可以包含易失性存储器(例如,ram)和非易失性存储器(例如,闪存)。无线电处理器19可以是通用处理器,例如arm
tm cortex-m
tm
处理器;其还可包含一个或多个dsp。无线电芯片4包括定时器20,但是也可以包括其他外围设备、总线等,为了简单起见,此处不再赘述。
105.装置2还包含单独的音频微控制器芯片5,其包括自己的处理器21和存储器22(用于存储软件和数据),以及定时器23、频率可调的低抖动振荡器24和集成电路内置音频总线(i2s)输出外围设备25。该装置可以包括其他外围设备、总线等。
106.装置2还包括系统处理器6、系统存储器7、各种外围设备8(如其他定时器和i/o模块)以及电池9。特别值得注意的一个外围设备是数模转换器(dac)10,其通过i2s总线连接到音频微控制器芯片5的i2s外围设备25。音频放大器11被配置为放大由dac 10输出的模拟音频信号,以便驱动扬声器12。
107.装置2的各种组件可以通过一个或多个印刷电路板连接,和/或可以以任何适当的组合集成在一个或多个硅芯片中。无线电天线26可以位于外壳3内或外,并且连接到无线电芯片4。应当理解,装置2可含有为了简单起见而未在图2中示出的其它元件,例如总线、晶体、数字逻辑、模拟电路、离散有源组件、离散无源组件、其它处理器、用户界面组件等。
108.在使用中,存储在无线电存储器18中的软件由无线电处理器19执行,以实现蓝牙
tm
低能耗协议栈的相关功能。与音频微控制器5相结合的无线电处理器19还管理来自服务器1的音频流的处理。
109.包含压缩音频的数据分组由服务器1定期传输(例如每10ms,由服务器1的时钟测量)。可以假设传输时间是无抖动的。每个无线电数据分组包含多个音频样本,这些音频样本足以至少在连续分组之间的间隔的持续时间内产生音频输出(例如,至少10ms的音频)。例如,如果数据分组每10ms传输一次,以48khz采样的单声道音频在每个数据分组中将有480个样本(48,000*10ms=480)。样本使用适当的编解码器进行压缩。数据包可以另外编码与音频流相关联的元数据(如采样率和宽度)。
110.图3示出了无线扬声器系统1、2用来确保同步音频输出的关键原理。
111.当扬声器2a、2b接收到每个无线电分组时,其确定在接收当前数据分组k+1和接收前一个数据分组k之间经过的时间间隔tk。通过对每个相应分组中的公共点的到达时间之间的间隔进行计时来实现这一点,例如,分组的相应地址字段的到达时间(由图3中的垂直箭头表示)。
112.频率可调的低抖动振荡器24确定音频从音频微控制器5输出的速率,即回放采样时钟速率。该振荡器24的频率由软件算法控制,该算法基于测量间隔tk和数据分组k的回放持续时间pk之间的任何差值来调整振荡器24的频率输出。因此,数据分组k+1的回放间隔p
k+1
取决于时间间隔tk,并且可以被控制以补偿回放速率中的任何早期不准确度。这样,每个扬声器2a、2b的回放速率与服务器1的时钟相匹配,而不是依赖于每个扬声器2a、2b内的
本地非同步时钟,因此两个扬声器2a、2b的回放速率保持一致(至少在适当的时间段内保持平均一致)。在当前数据包k携带的音频流被输出时,软件算法递增地调整振荡器24,以避免速率的任何突跳,否则这可能导致可听假象。
113.图4示出了每个扬声器2中的硬件和软件组件,这些组件共同协作以控制将接收到的音频流从i2s外围设备25输出到dac 17的速率。这些操作在无线电微控制器单元(mcu)域4'和音频mcu域5'之间共享。
114.无线电mcu域4'中的无线电组件被配置成再几乎没有或没有抖动的情况下,检测接收到输入无线电分组的地址的时间。这个地址的检测可以确定一个非常精确的时间点,其适用于定义数据分组的接收时间。每次检测时,无线电都会发出“地址”事件的信号。
115.无线电处理器19接收分组并对其进行解码。如果分组包含音频数据,那么“地址”事件的略微延迟版本将通过处理器间通信通道被转发到音频mcu域5'。增加的延迟为无线电处理器19完全解码输入帧提供了足够的时间,以及为音频微控制器5处理音频数据提供了足够的处理时间。增加的延迟是恒定的和无抖动的,并且由与无线电mcu域4'相关联的晶体振荡器41定时。该延迟的地址事件用作“时间参考”事件。
116.更详细地说,地址事件的接收触发了无线电mcu域4'中的定时器20(timer1)的启动。该定时器20被配置为在预定的附加延迟周期之后输出timeref事件信号。此timeref事件是时间参考事件。该事件通过处理器间通信信道被分发到音频微控制器域5',在此由i2s外围设备25和第二定时器23(timer2)接收。预定的附加延迟是网络和音频mcu 4'、5'的最坏情况处理时间,这可以通过分析或实验来进行确定。timeref事件也被反馈给timer1,以便为下一个地址事件清除timer1。
117.可以适当地处理不属于音频链一部分的无线电数据分组,而无需转发时间参考事件。这意味着扬声器2不限于仅处理音频。可以发送或接收任何类型的无线电帧,或者处理其他任务,而不会影响音频链。特别地,如果接收到的分组不是音频链的一部分,则网络软件停止(即取消)定时器20(在图4中显示为停止信号),时间参考timeref事件以信号方式发出。
118.在图4中,timer1在与服务器1和i2s音频输出外围设备25都异步的时钟(从第一晶体41获得)上运行,因为包含i2s外围设备25的音频mcu域5'由第二晶体42定时。然而,在其他实施例中,timer1可以在音频mcu域5'中实现。在一些实施例中,无线电mcu域4'和音频mcu域5'可以共享晶体。
119.两个连续的timeref事件之间的时间通过mcu域5'中的第二定时器23(timer2)定时器来测量。每当timer1定时器发出timeref事件信号时,在音频处理器21上执行的软件从第二定时器23捕获定时器值。该值代表最近的时间间隔tk。尽管与本地系统5'的高频时钟同步,但是timeref事件主要取决于远程系统1和无线通信链路的定时。
120.在无线电微控制器4成功解码之后,包括压缩音频样本和元数据的有效载荷被传送到音频mcu域5'的存储器22。音频微控制器5使用软件或硬件解码器43将音频数据解压为pcm样本(在pcm帧中),并将其放置在存储器22内的音频缓冲存储器40中,该存储器可由i2s音频输出外围设备25访问。音频缓冲存储器40包括一对fifo缓冲器,每个缓冲器的大小等于或大于单个pcm帧(或单个分组的音频内容)。这些缓冲器可能位于系统ram或闪存中,也可以是专用寄存器。
121.i2s外围设备25可以接收启动任务输入,该输入激活音频流中第一个pcm帧的回放。每个pcm帧以交替的“乒乓”方式被写入音频缓冲存储器40中的两个帧大小的fifo缓冲器之一。i2s外围设备25交替地从两个fifo缓冲器中读取。当i2s外围设备25开始处理每个连续的pcm帧时,其输出一个framestart事件信号。因此,当回放到达第一fifo缓冲器的末尾时,i2s外围设备25以信号的方式通知framestart事件,并从第一fifo缓冲器开始回放,反之亦然,从而产生输出到dac 17的连续音频流。
122.framestart事件由第二定时器23(timer2)接收,除了对tk周期计时外,该定时器还独立地对连续帧开始之间的间隔pk进行计时。除了tk测量值之外,这些pk定时器值由在音频mcu域5'中执行的软件捕获。
123.本文提及的事件和信号可以通过与地址或数据总线分离的外围设备互连系统传输,例如,如申请人的早期申请wo 2013/088121中所公开的。
124.i2s样本以可控音频振荡器24设置的时钟速率从i2s外围设备25输出。振荡器24提供内存映射的寄存器接口,可供音频处理器21访问。振荡器24可以由在音频mcu域5'中执行的软件通过将适当的值写入以下三个寄存器来控制:frequency、freqinc和freqincperiod。首先写入frequency寄存器的值决定了振荡器24的起始频率。软件可以在音频流开始时设置一次(例如,基于从服务器1接收的元数据)。freqinc和freqincperiod寄存器用于逐渐改变振荡器的输出频率。freqincperiod中的值定义了振荡器24中定时器的时间周期。如果将非零符号值写入freqinc,则振荡器24开始在freqincperiod定义的每个时间周期内,重复地将该符号值作为频率增量添加到存储在freqinc寄存器中的当前输出频率。
125.寄存器接口可以总结如下:
126.·
frequency:表示当前振荡器频率。步长大小约为3ppm。
127.·
freqincperiod:频率增量周期,在0μs到10μs的范围内,以1μs为可调步长。
128.·
freqinc:在每个freqincperiod,该符号值被添加到当前频率。分辨率约为3ppm。
129.图5更详细地示出了可控振荡器24。振荡器24是产生具有输出频率fs的信号的硬件模块。该信号控制音频样本通过i2s总线传输到dac 17的速率,从而向dac 17提供时钟参考。它以32mhz输入作为参考(从第二晶体42获得),并且可以基于以下两个可选标称频率之一生成可调谐输出频率:11.289mhz和12.288mhz。这两个频率均可在+/-1%之间调节,以支持音频dac中所有流行的采样率。振荡器24包括一个mash(1,1)∑-δ调制器(sdm),用于实现3.3ppm的频率分辨率和200ps的典型抖动。
130.在音频mcu域5'中执行的软件将两个帧开始事件之间的时间与两个时间参考事件之间的时间进行比较,从而确定与服务器1用于发送无线电分组的时钟相比时,本地采样时钟是太慢还是太快。该软件使用该信息来写入适当的freqinc和freqincperiod值,使得振荡器24的频率收敛于所需的频率。
131.该软件可以使用任何合适的算法来调整本地音频振荡器24的频率以达到目标。一组同步扬声器2a、2b可能需要比单个回放装置(例如,单声道音频装置)更高的精度,例如,与微秒精度一致的采样时间,因此可以受益于与包括单个回放装置的系统不同的调整过程。
132.一种可能的算法是线性调整,其中频率线性增加或减少到一个水平,使得平均回放速度(例如,每两个数据分组的平均值)与服务器1的音频传输速率相匹配。然而,可以使用更复杂的算法来最小化由频率调整引起的失真。
133.如果数据分组开始时的频率与其结束时的目标频率(持续时间为10ms)之间的频率偏差(或误差)为f
err
,则软件可以选择一对满足公式f
err
=freqincx(10ms/freqincperiod)的freqinc和frequincperiod值。在某些情况下,有多个可能的freqinc和frequincperiod对可用于产生所需的频率调整。在这种情况下,软件可以选择最小的可用freqinc值(即具有最大的步长数量),这有助于最小化声音失真。对于非常小的误差,freqinc将被设置为最小可能的非零值(例如1ppm),并且freqincperiod将尽可能的大,以最小化f
err
。对于较大的误差,即使在最快的更新速率下(例如freqincperiod为1μs),1ppm的freqinc可能是一个太小的增量,不足以校正f
err
,因此在此处将freqinc设置为大于1ppm,但还是尽可能的小。
134.在一些实施例中,可以设置freqincperiod,使得在下一个接收到的pcm帧的持续时间内总是达到平均采样率(可能会有一些过度,如下面参考图6所解释的)。
135.振荡器24的输出频率被逐渐调整,使得回放pcm帧速率与接收到的帧速率相匹配。一旦实现收敛,或者一旦在一个或多个帧的周期内测量的平均(平均)样本回放速率等于服务器1的样本传输速率,在同一周期内,扬声器2a、2b将与服务器1的时钟同步,并且两者之间彼此同步。
136.图6示出了在每个pcm帧的持续时间内线性调整(使用重复的频率增量)的回放速率,其梯度由写入freqinc和freqincperiod的值确定。可以看出,在这个实例中,完美收敛是永远不会持续的,而输出频率fs在由服务器1设置的分组传输速率的任一侧振荡,从而在每两帧周期内具有正确的平均速率a。
137.在第n帧的回放周期pn期间,软件基于先前确定的速率太低的情况,逐渐增加回放速率。在第n+1帧开始时,软件确定播放速率现在太高,因为第n+1帧的framestart事件和第n帧的framestart事件之间的间隔pn小于第n+1个数据分组(包含第n+1帧)的时间参考事件和第n个数据分组(包含第n帧)的时间参考事件之间的间隔tn。因此,软件计算合适的负增量(减量)和时间周期,并将其写入freqinc和freqincperiod寄存器。这使得振荡器输出在第n+1帧的回放持续时间内逐步减少,从而避免了由于在第n+2个数据分组已经被接收到另一个fifo缓冲器中之前完全播放音频缓冲存储器40的一个fifo缓冲器而导致的缓冲区欠载的风险。因为振荡器24需要被设置来补偿周期pn和p
n+1
中回放速率高于长期平均值a的部分,所以在周期p
n+1
结束时频率会很高。因此,在下一个间隔p
n+2
期间,软件会将一个正增量和时间周期写入freqinc和freqincperiod寄存器。
138.除了在两帧周期内给出正确的平均速率并且避免了缓冲区欠载或溢出,这种方法还可以固有地针对服务器1时钟频率的任何长期变化(例如,由于温度变化)进行调整。
139.当然,虽然音频缓冲存储器40在这里被描述为仅缓冲两帧以最小化时延,但是其他实施例可以提供更大的缓冲器,并且可以在不同的时间点更新振荡器24的设置,但是整体效果相同。
140.为了确保音频流的第一个pcm帧(即编码在数据分组p0中)的回放在正确的时间开始,通过触发i2s外围设备25的启动任务,初始时间参考事件用于启动i2s外围设备25。这可
以通过将无线电mcu域4'连接到i2s外围设备25的专用事件信令线路来完成,而不是通过可能受到竞争的总线来完成。这样,延迟是可预测的(例如,一个cpu周期)。如果两个扬声器2a、2b实现相同的延迟,那么其音频流将都与来自服务器1的传输同步,并因此彼此同步。
141.然后,在每个framestart事件中,都会计算并进行新的频率调整。在一些实施例中,软件还可以使用时间参考事件来对单个样本的回放进行对齐。通常,这可能用于对齐pcm流中第一个样本的回放。
142.图7总结了当解码音频流时由在装置2上运行的软件执行的主要步骤。71:软件从第二定时器23(timer2)读取下一个数据分组间隔值tk。72:然后,其从第二定时器23读取下一帧间隔值pk。73:接下来,如上所述,其根据tk和pk之间的差值计算新的freqinc和freqincperiod值。74:然后,其将这些值写入到振荡器24的寄存器接口。重复这些步骤,直到音频流结束。
143.图8示出了来自本发明的替代实施例的选定硬件和软件组件,其是音频记录设备102(如无线麦克风),其可以将接收到的声音信号转换成音频数据,并通过无线电发射音频数据。
144.记录设备102具有与图4所示的扬声器2相同的特征,例如与图4所示的域4'、5'相似(但不相同)的无线电mcu域104和音频mcu域105。
145.记录设备102包含输出脉冲密度调制(pdm)电信号的数字麦克风86。这由位于音频mcu域105中的pdm-pcm转换器85接收,该转换器将pdm信号转换成输入到音频缓冲存储器80的脉冲编码调制(pcm)数据。音频缓冲存储器80包括一对帧大小的fifo缓冲器,每个缓冲器的大小适合保存单个pcm帧(或单个数据分组的音频内容)。这些缓冲器可能位于系统ram或闪存中,也可以是专用寄存器。如前所述,每个pcm帧以交替的“乒乓”方式被写入相应的帧大小的fifo缓冲器。然后,缓冲的音频以10ms的块被获取,并由编码器83压缩,然后被传送到无线电mcu域104以进行无线电传输,例如,通过蓝牙
tm
低能耗同步信道。
146.音频mcu域105中的频率可调的低抖动振荡器124控制来自数字麦克风86的采样率,从而确定音频缓冲存储器80的填充速率。
147.替代实施例可以包含模拟麦克风和外部adc,其可以通过i2s总线与音频mcu域105联接。然后,振荡器124将控制外部adc的采样率。
148.在无线电mcu域104内,大约每10ms接收一次输入数据分组。如前所述,地址事件的接收触发定时器120(timer1)定时器的启动,该定时器在预定的附加延迟周期后输出一个timeref事件信号。通过音频mcu域105中的第二定时器123(timer2)测量连续timeref事件之间的时间。在音频mcu域105中运行的软件使用这些时间间隔来控制所记录音频的采样率,如下所述。
149.振荡器124可以与前述实施例描述的振荡器24相同,具有相同的寄存器接口。基于装置102从远程无线电收发机(未示出)接收的无线电数据分组之间的间隔,并使用与以上在接收音频的上下文中公开的原理相同的原理来控制振荡器124。输入无线电数据分组不必携带输入音频数据以供装置102处理(尽管可以这样做)。相反,这些数据可以主要用作记录设备102的定时信号,而不包含音频数据。设备102通过从天线126发送包含从麦克风86导出的预定量的压缩脉码调制数据(例如,对应于10ms的解压音频)的相应响应无线电数据分组来回复每个输入无线电数据分组。
150.类似于前述实施例,在音频mcu域105中运行的软件测量填充音频缓冲存储器80中的一个fifo缓冲器所花费的时间,并将其与由两个接收到的输入无线电数据分组设置的两个时间参考事件之间的时间进行比较。因此,通过与远程无线电收发机用于对输入无线电数据分组的传输进行计时的时钟相比,该软件根据麦克风采样时钟过慢或过快多少来确定时间。该软件使用该信息将适当的freqinc和freqincperiod值写入振荡器124,使得振荡器124的频率随着时间达到所需的平均频率,以避免音频缓冲存储器80的溢出或欠载。如前所述,软件可以使用任何合适的算法来调整本地音频振荡器24的频率,以达到目标。
151.这样,来自设备102的音频承载无线电传输与外部无线电收发机的时钟同步,而不是依赖于记录设备102的晶体81、82。这确保了设备102总是能够向每个输入无线电分组发送包含固定长度的音频数据的及时响应,而没有音频缓冲存储器80溢出或欠载的风险。
152.在该记录实施例中也可以使用参考图4的实施例所公开的任何相关特征。
153.其他实施例将音频接收系统(例如类似于图2和图5所示的扬声器2)与音频记录系统(例如类似于图8所示的麦克风设备102)相结合。这种设备可以同时记录和输出音频。例如,该设备可以是无线家庭助理设备,其可以同时通过无线电向服务器发送用户语音命令的记录,同时通过无线电输出从服务器接收的音乐。在一些情况下,该设备可以通过相应的输出无线电数据分组来响应携带压缩输入音频帧的每个输入无线电数据分组,并通过由输入无线电数据分组之间的间隔确定的记录和回放速率的定时来响应携带压缩输出音频帧的每个输入无线电数据分组,如上所述。
154.该设备可以使用相同的硬件来实现图5和8所示的一些共同元素,例如使用相同的无线电来接收和发送数据。特别地,该设备可以使用单个振荡器24/124来控制将音频样本写入输出音频缓冲存储器80的速率和将样本从输入音频缓冲存储器40读出的速率。如果输入和输出流的音频比特率相同,那么存储在每个帧中的压缩音频数据的未压缩持续时间将相同,并且缓冲器写入速率和读取速率可以相同。如果采样率不同,仍然可以使用相同的振荡器,但是写入和/或读取速率通过适当的整数和/或分数缩放比例从振荡器输出中导出。
155.所属领域的技术人员将了解,本发明已通过描述其一个或多个特定实施例予以说明,但不限于这些实施例;在所附权利要求书的范围内,许多变化和修改是可能的。
156.特别地,应当理解,在其他实施例中,可以使用硬连线逻辑电路而不是在处理器上运行的软件来实现图7和本文公开的其他步骤。因此,在一些实施例中,音频mcu域可能根本不需要包括处理器。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1