语音解码装置及语音解码方法

文档序号:2824748阅读:216来源:国知局
专利名称:语音解码装置及语音解码方法
技术领域
本发明涉及语音解码装置及语音解码方法,特别涉及具有分层结构的可扩展编码解码器使用的语音解码装置及语音解码方法。
背景技术
在移动通信中,为了有效利用传输频带,必须进行语音或画像的数字信息的压缩编码。其中,对便携电话中广泛利用的语音编码解码(编码/解码)技术的期望很高,对于压缩率较高的现有高效率编码,要求更高的音质。另外,近年来,具有多个层结构的可扩展编码解码器作为效率更高、质量更高的语音编码解码器被用于IPdnternet Protocol,互联网协议)通信网中, ITU-T(International Telecommunication Union-Telecommunication Standardization kctor,国际电信联盟远程通信标准化组织)或MPEG(Moving Picture Experts Group,动态图像专家组)正在研究标准化。另外,通过20年前建立的对语音的发声机构进行建模并且应用矢量量化的语音编码技术的基本方式即CELP (Code Excited Linear Prediction,码激励线性预测)、及音频编码中使用的变换编码技术(MPEG标准ACC、MP3等),使得语音/音乐编码技术取得很大进步,已能够进行高质量的通信及音乐欣赏。并且,近年来,关注全IP化、无缝化及宽带化, 覆盖语音到音频的可扩展编码解码器的开发及标准化(ITU-T SG16 WP3)也得到了发展。该编码技术是如下结构的编码解码器传输的语音的频带分层地形成,另外,在高层对低层的量化误差进行编码。专利文献1公开了在高层对低层的量化误差进行编码的分层型编码的基本发明、 及使用采样变换从低层到高层进行更宽频带的编码的方法。另外,在ITU-T中,推荐了 5层的可扩展语音编码解码器G. 718 (例如,非专利文献1)。另外,在传输可扩展编码解码器的各层(层)的代码的情况下,可考虑采用通过对每层不同的分组来传输的方法。但是,因通信系统的不同,有时在解码器侧各个帧的各层分组的接收顺序或接收定时不同。但是,即使在这种情况下,在语音通信中,解码器也必须稳定地持续输出解码语音。为了应对该问题,可考虑这样的算法设置抖动吸收缓冲器,将构成帧的多个分组存储在抖动吸收缓冲器中,由此等待构成帧的多个分组的到达,在所有分组到达后,取得同步并进行解码。另外,此时,利用如下算法连续地进行解码在对帧的分组进行合成的定时临近的情况下,先行开始分组的解码,观察分组的到达状态,并在分组到达了的情况下,以追加方式进行解码,如果分组未到达则放弃,丢弃延迟了的分组。在这种处理中,发生被称为“延迟抖动”或“通信抖动”的现象。特别是,关于语音数据的通信,专利文献2 5示出了应对该“抖动”的发明。现有技术文献专利文献专利文献1 日本特开平8463096号公报
专利文献2 日本特开平11-41287号公报专利文献3 日本特开2003-87317号公报专利文献4 日本特开2000-151694号公报专利文献5 日本特开2007-235221号公报非专利文献非专利文献1 ITU-T G. 718标准书,2008年6月

发明内容
发明要解决的问题但是,在专利文献2 专利文献5中,使用1个分组来传输规定时间的语音信号, 对于与上述“抖动”的关系,没有与多个层的各代码的处理有关的记载。即,在专利文献2 专利文献5中,具有如下问题在对每帧接收所有层的代码后一起进行解码,因此存在直到接收所有层的代码为止的等待时间,由此每次都发生处理延迟。另外,即使在先行开始各层的解码的情况下,也具有如下问题存在直到对每帧接收各层的代码为止的等待时间,因此同样会发生处理延迟。因此,在专利文献2 专利文献5中,存在不能使解码器的处理器执行需要集中的时间的其他进程的问题。另外,在专利文献2 专利文献5中,在中断从外部进入时处于先行解码的情况下,不能输出正在先行解码的帧的合成音。因此,在专利文献2 专利文献5中,提前进行先行解码的处理、将合成音提前地解码很重要。另外,以往,在便携终端中会频繁地产生时钟延迟。时钟延迟是指,发送侧的时钟与接收侧的时钟之间的时钟偏差被累积,成为较大的时间偏差,不能取得同步的现象。作为该情况下的对策,在接收侧超前的情况下,在无声区间中追加1帧的合成音,在接收侧滞后的情况下,丢弃1帧的合成音,输出丢弃了的帧的下一帧的合成音。因此,在以往的装置中, 需要提前进行解码处理,提前生成合成音,等待无声区间的帧的定时,进行合成音的追加或合成音的丢弃。S卩,在以往的装置中存在如下问题在对于先行解码及时钟延迟的任意的应对中, 尽管提前生成合成音非常重要,但是由于产生处理延迟,都不能输出合成音。本发明的目的在于提供语音解码装置及语音解码方法,其尽快地进行解码处理而提前生成合成音,因此能够在规定时间内连续地将处理器用于其他用途,并且即使由于紧急中断而将处理器用于其他用途,也能够不间断地生成合成音。解决问题的方案本发明的语音解码装置,包括接收单元,在多个帧中接收在由多个层构成的语音编码装置中生成了的各个层的代码并进行存储;以及解码单元,将所述各个层的代码进行解码,所述语音解码装置还包括选择单元,选择与在未解码状态的所述各个层的代码中的、最先进行解码的代码对应的帧号和层号,所述接收单元进一步存储表示所述各个层的代码是否未接收、是否未解码、或是否解码完毕的解码状态,并在输入了更新指示的情况下进行所述解码状态的更新,所述选择单元通过搜索所述解码状态,选择与代码对应的所述帧号及所述层号,并且将所述解码状态的所述更新指示输出到所述接收单元,所述代码是在所述接收单元中存储或更新了所述解码状态时所述解码状态为未解码状态,在存储或更新后最先进行解码的代码,所述解码单元将与所述帧号及所述层号对应的代码进行解码。本发明的语音解码方法,包括接收步骤,在多个帧中接收在由多个层构成的语音编码装置中生成的各个层的代码,并将其存储在存储器中;以及解码步骤,将所述各个层的代码进行解码,所述语音解码方法还包括选择步骤,选择与在未解码状态的所述各个层的代码中的、最先进行解码的代码对应的帧号和层号,在所述接收步骤中,进一步将表示所述各个层的代码是否未接收、是否未解码、或是否解码完毕的解码状态存储在所述存储器中, 并在被指示了更新的情况下进行所述存储器的所述解码状态的更新,在所述选择步骤中, 通过搜索所述解码状态,选择与代码对应的所述帧号及所述层号,并且对所述存储器指示所述解码状态的更新,所述代码是在所述存储器中存储或更新了所述解码状态时所述解码状态为未解码状态,在存储或更新后最先进行解码的代码,在所述解码步骤中,将与所述帧号及所述层号对应的代码进行解码。发明的效果根据本发明,尽可能提前地进行解码处理来提前生成合成音,因此能够在规定时间内连续地将处理器用于其他用途,并且即使由于紧急中断将处理器用于其他用途,也能够不间断地生成合成音。


图1是表示本发明实施方式1的语音解码装置的结构的方框图。图2是表示本发明实施方式1的决定解码的帧号和层号的方法的流程图。图3是表示一例本发明实施方式1的状态矩阵的图。图4是表示一例本发明实施方式1的代码数据矩阵的图。图5是表示一例本发明实施方式1的合成音矩阵的图。图6是表示一例本发明实施方式1的合成音矩阵的图。图7是表示本发明实施方式2的语音解码装置的结构的方框图。图8是表示本发明实施方式2的决定解码的帧号和层号的方法的流程图。图9是表示本发明实施方式2的语音解码装置的解码单元的结构的方框图。图10是表示一例本发明实施方式2的无声标记的图。
具体实施例方式以下,参照附图详细地说明本发明的实施方式。(实施方式1)图1是表示本发明的实施方式1的语音解码装置100的结构的方框图。语音解码装置100是一例可扩展解码器(可扩展(多层)编码解码器的解码器)。在本实施方式的通信系统中,各个帧由多个层构成,并且对每个层进行编码而生成代码,生成存储了该代码的分组。由此,传输可扩展编码解码器的各层的代码。语音解码装置100主要包括分组接收单元101、帧号存储单元102、状态/代码存储单元103、层选择单元104、解码单元105、合成音存储单元106、定时器单元107、时间限制判定单元108、合成音验证单元109、补偿单元110、时钟延迟检测单元111、合成单元112、扬声器113。
语音解码装置100中的进程(process)主要包括进程150、160、170、180这4个进程。另外,4个进程150、160、170、180分别独立地进行动作。其中,优先次序是,进程170最高,接着依序是进程180、进程160,进程150的优先级最低。在多个进程同时访问同一存储单元或存储器的情况下,按照所述的优先次序执行处理。以下,详细说明各结构。分组接收单元101从传输路径接收分组,向传输路径发送数据(ACK),该数据 (ACK)表示接收到分组。另外,分组接收单元101将接收到的分组进行解压并进行解码,由此取出代码。即,分组接收单元101分别接收多个帧的每层的分组,取出接收到的多个帧的每层的代码。此时,分组接收单元101在由于检测到比特差错等原因而不能正常取出代码的情况下,丢弃分组,请求传输路径重发所丢弃的帧号及层号的分组。并且,分组接收单元 101也可以不请求重发,而放弃分组的取得。另外,分组接收单元101在正常地取出了代码的情况下,参照存储在帧号存储单元102中的基准号,即与当前从扬声器113输出的语音对应的分组的帧号,计算相对的帧号。然后,分组接收单元101将计算出的帧号存储在状态/代码存储单元103中,由此变更存储在状态/代码存储单元103中的状态矩阵及编码数据矩阵。例如,在基准号为“761”、 接收到的代码的帧号为“763”、及接收到的代码的层号为“2”的情况下,当前合成的帧号是前2个帧号的帧,因此分组接收单元101计算出相对的帧号“1”,不变更层号“2”。S卩,分组接收单元101从状态/代码存储单元103中取出状态矩阵,将State(IJ)的值设定为表示代码到达(即,将分组解码完毕,取出了代码)的“1”,对状态矩阵进行写入。然后,分组接收单元101再次将写入了的状态矩阵存储在状态/代码存储单元103中。另外,分组接收单元101从状态/代码存储单元103中取出代码数据矩阵,将代码存储在coded,2)中。然后,分组接收单元101再次将存储代码的代码数据矩阵存储在状态/代码存储单元103中。 此时,在由10比特表示的情况下,循环地取0 1023的值,因此注意到基准号“1023”的后面是“0、1、2... ”,可靠地检测时间的先后。另外,分组接收单元101在接收到不能使用的分组的情况下,将其丢弃。这里,所谓不能使用的分组是指,例如在上述例子的情况下,如果基准号为“761”、及接收到的代码的帧号为“760”,则合成完毕,该代码到达太晚,因此没有使用的路径。因此,在该情况下,分组接收单元101不存储基准号以下的帧号的代码,而将其丢弃。通过该处理,能够避免以后的解码处理的浪费。并且,不能使用的分组是指不能生成合成音,但实际上可用于生成该帧以后的帧的解码所需的滤波器或预测所需的状态(state)。在该情况下,所生成的状态是解码所需的重要信息,在获得了代码时优选进行状态的生成。帧号存储单元102存储与从合成单元112输入的当前由扬声器113输出的语音对应的分组的帧号。状态/代码存储单元103存储状态矩阵,该状态矩阵表示各个帧的每层的通信状况、以及各个帧的每层的代码是否解码完毕。状态矩阵是表示状态的3级的数值的2维矩阵。具体而言,“0”表示分组未到达语音解码装置100,“1”表示虽然分组到达语音解码装置(即,在分组接收单元101中分组已解码,取出了代码(也称为编码信息))但代码(编码信息)未解码,“2”表示代码(编码信息)已解码。另外,状态/代码存储单元103将分组接收单元101接收到的代码作为代码数据矩阵存储。此外,关于状态矩阵及代码数据矩阵,在后面进行叙述。
层选择单元104参照定时器单元107计测的时间,并且参照存储在状态/代码存储单元103中的状态矩阵,决定接下来解码的帧号(相对的帧号)和层号。然后,层选择单元104将决定了的帧号和层号通知给解码单元105。另外,层选择单元104在从时间限制判定单元108接收到解码的结束通知的情况下,结束规定时间(例如4个帧)内的帧的解码处理,开始下一个规定时间内的帧的解码处理。另外,层选择单元104在重新开始解码时将 “解码开始”通知给时间限制判定单元108。另外,层选择单元104根据从合成单元112输入的合成音的解码结果而选择帧和层。关于决定解码的帧号和层号的方法,在后面进行叙述。解码单元105参照从层选择单元104通知的帧号和层号,将存储在状态/代码存储单元103中的代码数据矩阵Code(i,j)的代码(编码信息)根据规定的算法(在本实施方式中进行ITU-T标准G. 718的解码,算法在非专利文献1中有所记载,因此省略说明)进行解码,得到时间序列的合成音yt、或频谱的合成音zf。另外,解码单元105参照帧号,对于存储在合成音存储单元106中的合成音矩阵syn(i,t)或spec (i,f),写入得到的合成音yt 或 。式⑴及式⑵示出该处理。·该层的合成音为时间序列的情况syn(i, t) = syn(i, t)+yt t = 0. . . L (1)L 合成音的帧长度·该层的合成音为频谱的情况spec(i, f) = spec(i, f)+zf f = 0. . . M (2)Μ:合成音的频谱长度S卩,解码单元105在由层选择单元104选择出的帧(在(1)式及( 式中是帧号 i)中,将对由层选择单元104选择出的层的代码进行解码所得的解码结果(时间序列的合成音yt、或频谱的合成音zf)与代码解码完毕的其他层的解码结果(合成音矩阵syn(i,t) 或speC(i,f))进行合成,得到合成音。然后,解码单元105将通过上述处理而写入了合成音的合成音矩阵syn(i,t)或Spec(i,f)再次存储在合成音存储单元106中。然后,解码单元105取出存储在状态/代码存储单元103中的状态矩阵,将帧号i及层号j的值从“1” 改写成“2”,将改写后的状态矩阵再次存储在状态/代码存储单元103中。由此,通过参照状态矩阵,得知帧号i及层号j的代码解码完毕。另外,解码单元105在规定时间的解码处理结束了的情况下,将“解码完毕”通知给时间限制判定单元108。合成音存储单元106存储随着解码的进行而在解码单元105中依序被改写的合成音矩阵。在可扩展编码解码器中相加了层的合成音所得的合成音是最终的合成音,因此,合成音存储单元106对于每帧具有1帧长度的合成音缓冲器。但是,在本实施方式中,划分缓冲器来存储时间序列的信号和频谱的信号。其原因在于,一般情况下,在主要由高层使用的变换编码的层中,将各层的合成音通过频谱(例如MDCT(Modified Discrete Cosine Transform,改进离散余弦变换)频谱)进行相加,最后进行逆变换(例如IDCT(Inverse Discrete Cosine Transform,离散余弦逆变换)),变换成时间序列。关于合成音矩阵,将在后面叙述。定时器单元107具有计测时间的功能,具有根据计测的实际时间使表示设定了的时间的数值T趋于0而精确地减少的功能。定时器单元107的时刻能够从外部观察,并且还能重新设定时间T。在从扬声器113输出合成音的期间内进行解码处理,定时器单元107 具有计测到进行下次合成为止的时间的功能。定时限制判定单元108参照定时器单元107示出的数值T,在数值T为下限值Tlimit 以上的情况下可继续解码进程,因此将该情况通知给层选择单元104。S卩,在成为时间下限值Tlimit为止继续解码进程。另外,时间限制判定单元108在数值T小于下限值Tlimit的情况下,将“解码处理结束”通知给层选择单元104。另外,时间限制判定单元108从层选择单元104接收解码开始通知,由此开始比较定时器单元107示出的数值T和下限值Tlimit。这里,下限值Tlimit是预先决定的常数。在定时器单元107中,设定了的时间趋于0而不断减少,在该时间小于某时间的情况下,如果不从解码处理转移到生成合成音的处理,则来不及进行下一个合成音输出。下限值Tlimit是表示该时间的常数。下限值Tlimit可根据“(合成音验证单元109的处理所花费的时间)+ (补偿单元110估计的必要时间内的最大时间)+ (合成单元112向扬声器113输出合成音的时间)+ (1层的解码所花费的时间的最大时间)”来求。合成音验证单元109从状态/代码存储单元103取出状态矩阵,参照接下来输出的帧的状态state (0,*)。另外,在全部为“2”的情况下,由于解码在所有层中完毕,因此合成音验证单元109从合成音存储单元106取出合成音矩阵syn(0,t)或speC(0,f)。另外, 合成音验证单元109对取出了的speC(0,f)的频谱进行逆变换(例如IDCT),得到时间序列的合成音,将得到的合成音与syn(0,t)相加,并将得到的(syn(0,t)、t = 0-L)输出到合成单元112。在此之前,合成音验证单元109从层0向高的层参照状态矩阵的状态。此时,如果存在不是“2”的层,则比该层高的层都没有代码而未被解码,因此可能需要对未被解码的层进行补偿处理。这里,需要进行补偿处理的情况是从层0起都没有合成音的情况、 或在层2中频率像频率扩展那样发生变化的情况。与上述情况相对,在其他情况下,与补偿导致的音质恶化相比,因没有高层的代码(编码信息)而无法将低层的编码失真进行解码时的音质恶化具有听觉恶化较少的趋势,因此一般情况下不需要进行补偿处理,而直接输出合成音。合成音验证单元109在需要补偿的情况下,将合成音(syn(0,t)、t = 0_L)或 (spec(0, f), f = -Μ)输出到补偿单元110。补偿单元110对于从合成音验证单元109输入的合成音进行补偿处理。再有,没有代码时的补偿处理的具体方法记载在非专利文献1中,因此省略其说明。时钟延迟检测单元111监视作为发送侧的未图示的语音编码装置和作为接收侧的语音解码装置100间的时钟偏差的大小,根据时钟的偏差设定标记(flag),通过标记向合成单元112发送指示。具体而言,时钟延迟检测单元111在没有时钟偏差的情况下发送标记“0”,在时钟偏差没有超过1帧但大于规定值的情况下,发送标记“1”,在时钟偏差超过 1帧的情况下发送标记“2”。这样,时钟延迟检测单元111将时钟偏差转换为标记来发送, 对于合成单元112进行指示。合成单元112在从合成音验证单元109输入合成音的情况下立即将合成音传输到扬声器113的输出用缓冲器。然后,合成单元112在进行了 1帧的合成后,使所有的状态前进1帧。具体而言,合成单元112求将存储在帧号存储单元102中的基准号加1后的数值, 在求出的数值超过上限值的情况下将0存储在帧号存储单元102中,在求出的数值未超过上限值的情况下将求出的数值存储在帧号存储单元102中。另外,进行存储在状态/代码存储单元103中的状态矩阵和代码数据矩阵、及存储在合成音存储单元106中的合成音矩阵的存储器移位(memory shift)和初始化。然后,合成单元112将进行了存储器移位和初始化的状态矩阵及代码数据矩阵再次存储在状态/代码存储单元103中,并且将进行了存储器移位和初始化的合成音矩阵再次存储在合成音存储单元106中。式C3)示出存储器移位及初始化的方法。state (i,j) = state (i+1, j) i = 0 2 j = 0 4code (i,j) = code (i+1,j) i=0 2j = 0 4syn(i, t) = syn(i+l, t) i=0 2t = 0 Lspec (i,f) = spec (i+1,f) i=0 2f = 0 M上述存储器移位后,进行下述初始化。(3)state (3,j) = 0 j = 0 4code (3,j) = allO j = 0 4syn(3, t) = 0 t = 0 Lspec (3, f) = 0 f = 0 M另外,合成单元112将定时器单元107的时间T重新设定成扬声器113输出1帧的合成音所需的时间。另外,合成单元112始终监视从时钟延迟检测单元111发送的信号。 另外,在从时钟延迟检测单元111发来了调整指示的情况下,合成单元112在将合成音传输到扬声器113的输出用缓冲器之前确认输出的合成音的功率。然后,合成单元112在判断为过于超前而且合成音的功率为无声区间的情况下(以下记为“状态1”),先将无声区间发送到扬声器113,然后发送当前帧的合成音。另外,合成单元112在判断为滞后而且合成音的功率为无声区间的情况下,并且在合成音存储单元106中2帧以上的合成音已经被解码的情况下(以下记为“状态2”),不输出当前帧的合成音而将其丢弃,将第2合成音发送到扬声器113。合成单元112在“状态2”的情况下,进行再多1帧的存储器移位处理。另外, 合成单元112在从时钟延迟检测单元111发来了调整指示的情况下而且不符合上述“状态 1 ”及“状态2”的情况下,一直等待到成为“状态1 ”或“状态2”为止,在无声区间到来而成为了能够应对的定时之时,进行调整帧的输出的处理。扬声器113具有2帧量的输出缓冲器,具有使一帧量进行数字/模拟(D/A)输出同时等待向另一帧量的输出缓冲器的输入的功能。另外,在输出缓冲器由比帧长度稍长的1 个触发缓冲器(toggle buffer)构成的情况下,有助于节约存储器容量。在本实施方式的语音解码装置100中,如果不是1帧量即将被D/A输出,则不会补充1帧的合成音,因此通过利用这种功能,能够节约空闲的存储器容量。接着,使用图2说明决定解码的帧号和层号的方法。图2是表示决定解码的帧号和层号的方法的流程图。首先,层选择单元104选择相对的帧号0 (i = 0)的帧(步骤(以下称为ST) 201), 判定相对的帧号是否大于“3”(ST202)。层选择单元104在相对的帧号大于“3”的情况下 (ST202 “是”),返回到 ST201。另一方面,层选择单元104在相对的帧号不大于“3”的情况下(ST202 “否”),选择层号0(j = 0)的层(ST203),判定层号是否大于“4”(ST204)。在层号大于“4”的情况下(ST204 “是”),层选择单元104选择下一帧(ST205),进行ST202的判定。另一方面,在层号不大于“4”的情况下(ST204:“否”),层选择单元104通过参照状态矩阵,对选择的帧号i的层号j,判定是否存在表示虽然已到达但未解码的序号 “1”(ST206)。其中,此时,在即将参照状态矩阵state(i,j)之前,必定重读状态/代码存储单元103的状态矩阵的内容。在每次判定时进行重读的原因在于,在分组到达分组接收单元101的情况下,通过优先进行处理的进程150的分组接收单元101的功能,改写了状态 /代码存储单元103的状态矩阵的内容。在存在序号“1”的情况下(ST206 “是”),层选择单元104将该帧号i和层号j输出到解码单元105。另一方面,在不存在“1”号的情况下(ST206 “否”),层选择单元104对选择出的帧号i的层号j,搜索表示解码完毕的“2”号,判定是否存在“2”号(ST207)。在存在“2”号的情况下(ST207:“是”),层选择单元104选择下一层(ST208),进行ST204的判定。另一方面,在不存在“2”号的情况下(ST207 “否”),层选择单元104选择下一帧 (ST205),进行ST202的判定。这样,层选择单元104通过参照状态矩阵,对每个帧从低层到高层搜索表示虽然已到达但未解码的“1”号。此时,层选择单元104在检测到表示分组未到达的号“0”的情况下,即使搜索比其高的层也不能解码,所以搜索下一帧。即,层选择单元104对多个帧中的每一个,搜索各个帧的多个层中的特定层(状态矩阵的号“1”的层)或特定的最低层(状态矩阵的号“1”的最低层),由此选择所述特定层或所述特定最低层(图2中的层号j)、以及包含特定的最低层或特定层的特定帧(图2中的帧号i),所述特定层是比某层下位的所有层中取出的代码均解码完毕(状态矩阵的号“2”)、且比该层高的层中取出的代码未解码的、不是最低层的层,所述特定低层是取出的代码未解码的特定的最低层。另外,层选择单元104从帧0起向时间的行进方向对帧进行搜索。即,层选择单元104从多个帧中的时刻较早的帧(即,帧0)起依序进行所述搜索。另外,层选择单元104在层的号超过层数后开始下一帧的搜索,在帧号超过帧数后返回到最初的帧,继续搜索。该处理在理论上是无限循环,在优先进行处理的进程170的定时器单元107中的数值T小于下限值Tlimit的情况下, 作为中断处理,必须输出下一个合成音。因此,层选择单元104判定定时器单元107的数值 T是否小于下限值Tlimit (ST209),在定时器单元107的数值T小于下限值Tlimit的情况下,向时间限制判定单元108通知中断处理。但是,在该中断处理中,不返回刚刚中断了的原来的步骤。其原因在于,通过进行合成,前进了 1帧,因此由于合成单元112的动作,状态/代码存储单元103和合成音存储单元106的存储器内容发生了很大变化。至此,结束决定要解码的帧号和层号的方法的说明。图3是表示一例状态矩阵的图。在图3中,帧0是应近前输出的合成音的代码的各层的状态。帧1是在帧0之后输出的合成音的代码的各层的状态。这样,状态矩阵存储以后输出的合成音的代码的状态。图4是表示一例状态矩阵code (i,j)的图。图4表示存储了在图3的状态矩阵的状态下接收到的代码。在图4中,对分组已到达语音解码装置100的帧及层标注了阴影,并且对分组未到
11达语音解码装置100的帧及层标注了空白。通过将这些代码进行解码,得到合成音(解码音)。在上述内容中,帧0是即将输出的合成音的代码。帧1是在帧0之后输出的合成音的代码。这样,存储以后输出的合成音的代码。图5和图6是表示一例合成音矩阵的图。图5是表示图4的代码数据矩阵的状态下的合成音矩阵syn(i,t)的图。另外,图6是表示图4的代码数据矩阵的状态下的合成音矩阵speC(i,f)的图。在图5及图6中,帧2由于层0的代码未到达而没有合成音,帧3由于代码已到达但未解码而没有合成音。帧0及帧1由于层0的代码已解码而存在合成音。这里,帧0是即将输出的合成音。帧1是在帧0之后输出的合成音,这样,存储以后输出的合成音。艮口, 在本实施方式中,除了即将输出的帧0以外,还能够将在帧0之后输出的帧1的合成音进行解码。再有,扬声器113在所有进程的期间内持续输出1帧长度的合成音。这样,根据本实施方式,尽可能提前地进行解码处理而提前生成合成音,因此能够在规定时间内连续地将处理器用于其他用途,并且即使由于紧急中断将处理器用于其他用途,也能够不间断地生成合成音。(实施方式2)在本实施方式中,语音解码装置还判定各个帧是否是无声区间,根据是否是无声区间,选择应解码的帧及层。图7是表示本实施方式的语音解码装置200的结构的方框图。图7所示的语音解码装置200具有与实施方式1示出的语音解码装置100(图1)相同的基本结构,对相同的结构要素附加相同的标号,省略其说明。无声标记存储单元201存储随着解码的进行而在解码单元203中生成的无声标记。这里,无声标记sflag(i)是表示帧号i的帧的状态的3级的数值。具体而言,“0”表示到层2为止代码(编码信息)未被解码,“1”表示到层2为止代码(编码信息)被解码、并且合成音是有声还是无声的判定(以下称为有声/无声判定)的判定结果是有声,“2”表示到层2为止代码(编码信息)被解码、并且合成音是有声/无声判定的判定结果是无声。层选择单元202与实施方式1的层选择单元104相同,参照定时器单元107计测的时间,并且参照存储在状态/代码存储单元103中的状态矩阵及存储在无声标记存储单元201中的无声标记,决定接下来要解码的帧号(相对的帧号)和层号。然后,层选择单元 202将决定了的帧号和层号通知给解码单元203。关于层选择单元202中的决定要解码的帧号和层号的方法,在后面进行叙述。解码单元203与实施方式1的解码单元105相同,参照从层选择单元202通知了的帧号和层号,根据规定的算法(在本实施方式中进行ITU-T标准G. 718的解码,算法在非专利文献1中有所记载,因此省略说明),将存储在状态/代码存储单元103中的代码数据矩阵COde(i,j)的代码(编码信息)进行解码,得到时间序列的合成音yt、或频谱的合成音 ^。另外,解码单元203与实施方式1相同,参照帧号,按照式(1)及式0),对于存储在合成音存储单元106中的合成音矩阵syn(i,t)或speC(i,f)写入得到的合成音yt或、。在本实施方式中,作为一例,使用ITU-T标准G. 718的5层(层0 层4)的可扩展编码解码器。该情况下,层2是合成音从窄频带变化成宽频带的层,并且是合成音从时间序列变化成频谱的层。因此,解码单元203将到层0,1为止的合成音写入时间序列的合成音矩阵即syn(i,t),将层2 4为止的合成音写入频谱的合成音矩阵即SpeC(i,f)。另外,在层2的合成音被写入时,矩阵的存储器被清零。另外,通过IMDCT(Inverse Modified Discrete Cosine Transform,改进离散余弦逆变换),将频谱spec (i,f)变换为时间序列, 将变换后的合成音与时间序列的合成音矩阵syn(i,t)相加,由此计算层2以上的最终的合成首。然后,解码单元203将通过上述处理而写入了合成音的合成音矩阵syn(i,t)或 spec(i, f)再次存储在合成音存储单元106中。然后,解码单元203取出存储在状态/代码存储单元103中的状态矩阵,将帧号i及层号j的值从“1”改写成“2”,将改写后的状态矩阵再次存储在状态/代码存储单元103中。由此,可通过参照状态矩阵,得知帧号i及层号j的代码解码完毕。另外,解码单元203在解码了的代码的层号j为“2”的情况下,判定帧号i的帧是否是无声区间(进行合成音的有声/无声判定)。然后,解码单元203将无声标记Sflag(i) 输出到无声标记存储单元201中,该无声标记sflag (i)表示对帧号i的合成音的有声/无声判定的判定结果。这里,在本实施方式中,作为一例,使用了 ITU-T标准G. 718的5层(层0 层 4)的可扩展编码解码器,将层0,1设为窄频带OOOHz 3. 4kHz),将层2 4设为宽频带 (IOHz 7kHz)。因此,解码单元203在从层0起依序进行解码时,直到解码到层2为止,可得到宽频带的合成音。因此,如果解码单元203解码到层2为止,则能够判定其帧是有声还是无声。换言之,解码单元203如果仅通过层0、1,是无法检测有无高频带成分的,因此无法进行该帧的有声/无声判定。因此,解码单元203根据解码到层2为止所得的合成音,即时间序列的合成音矩阵syn(i,t)及频谱的合成音矩阵specif),进行有声/无声判定。然后,解码单元203对每帧(这里是4帧(帧0 3))用数值(“0” “2”)标示无声标记, 该无声标记表示判定结果。关于解码单元203的有声/无声判定处理的详细情况,在后面进行叙述。合成音验证单元204从状态/代码存储单元103取出状态矩阵,参照接下来输出的帧的状态state (0, *)。另外,在帧的状态state (0, *)全部为“2”的情况下,由于帧号i =0的代码(编码信息)的解码在所有层中完毕,因此合成音验证单元204从合成音存储单元106中取出合成音矩阵syn(0,t)或speC(0,f)。另外,合成音验证单元204将取出的 spec(0, f)的频谱进行逆变换(例如IDCT),得到时间序列的合成音,并将得到的合成音与 syn(0,t)相加,将作为相加结果的合成音(syn(0,t)、t = 0-L)输出到合成单元205。在此之前,合成音验证单元204从层0向高层参照状态矩阵的状态。此时,如果存在状态矩阵的状态不是“2”的层,则比该层高的层都没有代码而未被解码,因此可能需要对未被解码的层进行补偿处理。这里,需要进行补偿处理的情况是从层0起就全部没有合成音的情况、或在层2中频率像频率扩展那样发生变化的情况。对于上述情况,在其他情况下,与补偿导致的音质恶化相比,因没有高层的代码(编码信息)而无法将低层的编码失真进行解码时的音质恶化具有听觉恶化较少的趋势,因此一般情况下不需要进行补偿处理,而直接输出合成音。另外,在存储在无声标记存储单元201中的无声标记中的、与帧号i = 0(即,下一个输出的帧)对应的无声标记Sflag(O)为“2”的情况下,即到层2为止的解码完成并且判定为无声的情况下,不进行补偿单元110对层3、4的补偿处理,合成音验证单元204将合成音输出到合成单元205。另一方面,合成音验证单元204在需要补偿的情况下,将合成音(syn (0, t)、t = 0-L)或(spec(0,f), f = -Μ)输出到补偿单元 110。合成单元205与实施方式1的合成单元112相同,在从合成音验证单元204输入了合成音的情况下立即将合成音传输到扬声器113的输出用缓冲器。然后,合成单元205 在进行了 1帧量的合成后,使所有的状态前进1帧。另外,与实施方式1相同,按照式(3), 进行存储在状态/代码存储单元103中的状态矩阵和代码数据矩阵、及存储在合成音存储单元106中的合成音矩阵的存储器移位和初始化。然后,合成单元205将进行了存储器移位和初始化后的状态矩阵及代码数据矩阵再次存储在状态/代码存储单元103中,并且将进行了存储器移位和初始化后的合成音矩阵再次存储在合成音存储单元106中。此外,进行存储在无声标记存储单元201中的无声标记的存储器移位及初始化。然后,合成单元205 将进行了存储器移位及初始化后的无声标记再次存储在无声标记存储单元201中。式(4) 示出无声标记的存储器移位及初始化的方法。sflag(i) = sflag(i+l) i = 0 2上述存储器移位后,进行下述初始化。(4)sflag (3) = 0另外,合成单元205与实施方式1的合成单元112相同,将定时器单元107的时间 T重新设定成扬声器113输出1帧的合成音所需的时间。另外,合成单元205始终监视从时钟延迟检测单元111发送的信号。另外,在从时钟延迟检测单元111发来了调整指示的情况下,如果调整指示为“过于超前”而且来自无声标记存储单元201的无声标记为“2”(无声区间)(以下记为“状态1”),则合成单元205先将无声区间发送到扬声器113,然后发送当前帧的合成音。另外,合成单元205在调整指示为“滞后”而且来自无声标记存储单元201 的无声标记为“2”的情况下,并且在合成音存储单元106中2帧以上的合成音已经被解码的情况下(以下记为“状态2”),不输出当前帧的合成音而将其丢弃,将第2个合成音发送到扬声器113。合成单元205在状态2的情况下,进行再多1帧的存储器移位处理。另外, 合成单元205在从时钟延迟检测单元111发来了调整指示的情况下而且不符合上述“状态 1”及“状态2”的情况下,等待到成为“状态1”或“状态2”为止,在无声标记为“2”的区间 (无声区间)到来而成为能够应对的定时时,进行调整帧的输出的处理。接着,使用图8说明层选择单元202的决定解码的帧号和层号的方法。图8是表示决定解码的帧号和层号的方法的流程图。在图8中,对与图2所示的流程图相同的处理附加相同的标号,并省略说明。首先,层选择单元202选择相对的帧号0 (i = 0)的帧(ST301),判定相对的帧号是否大于“3”(ST302)。层选择单元202在相对的帧号大于“3”的情况下(ST302 “是”),进入 ST201。另一方面,层选择单元202在相对的帧号不大于“3”的情况下(ST302 “否”),选择层号0(j = 0)的层(ST303)。另外,层选择单元202判定层号j是否大于“4”或层号j 是否大于“2”而且无声标记sflag(i)是否为“2”(ST304)。其中,此时,在即将参照状态矩阵state(i,j)之前,必定重读状态/代码存储单元201的状态矩阵的内容。在每次判定时重读无声标记的内容的原因在于,需要使用最新的无声标记的内容进行判定,无声标记存储单元201的内容有可能已被解码单元203以及合成单元205改写。
在层号大于“4”的情况下或层号j大于“2”而且无声标记sflag(i)为“2”的情况下(ST304 “是”),层选择单元202选择下一帧(ST305),进行ST302的判定。另一方面,在层号不大于“4”而且层号j不大于“2”并且无声标记sflag(i)不为 “2”的情况下(ST304 “否”),层选择单元202通过参照状态矩阵state (i, j),对选择出的帧号i的层号j,判定是否存在号“ 1”,该号“ 1”表示虽然已到达(即,分组已解码,取出了代码(编码信息))但代码(编码信息)未被解码。其中,此时,在即将参照状态矩阵state(i, j)之前,与实施方式1 (图2所示的ST206及207)相同,必定重读状态/代码存储单元103 的状态矩阵的内容。在存在号“1”的情况下(ST306 “是”),层选择单元202将该帧号i和层号j输出到解码单元203。另一方面,在不存在号“ 1,,的情况下(ST306 “否”),层选择单元202对选择出的帧号i的层号j,搜索表示解码完毕的号“2”,判定是否存在号“2” (ST307)。在存在号“2”的情况下(ST307 “是”),层选择单元202选择下一层(ST308),进行ST304的判定。另一方面,在不存在号“2”的情况下(ST307 “否”),层选择单元202选择下一帧 (ST305),进行ST302的判定。另外,层选择单元202在ST202中相对的帧号大于“3”的情况下(ST202 “是”), 返回到ST301。这样,层选择单元202通过参照状态矩阵及无声标记,对每帧从低层到高层,在 state (i, j)中搜索号“1”,该号“1”表示分组已到达但从分组中取出的代码(编码信息) 仍未被解码。此时,层选择单元202在检测到表示分组未到达的号“0”的情况下,由于即使在检测到“0”的帧中搜索比其高的层也不能解码,因此搜索下一帧。另外,作为在层选择单元202中决定解码的代码的帧号及层号的算法,如图8所示,将近似了的结构的2种算法(图8所示的ST301 308的算法、及ST201 208的算法)串行地连结。这里,在图8所示的ST301 308中,层选择单元202在判定为搜索的帧是无声区间的情况下(图8所示的ST304 “是”),中止该帧的搜索,转移到下一帧的搜索。 即,层选择单元202在层号j大于4的情况(搜索了该帧的所有层的情况)和层号j大于 2(层3以上)而且无声标记sflag(i)为“2”(无声区间)的情况下,都中止该帧的搜索, 转移到下一帧的搜索。即,层选择单元202在多个帧中的、无声标记Sflag(i)为“2”的帧 (有声/无声判定的判定结果显示为无声区间的帧)以外的帧中,进行状态矩阵的号为“1” 的层的搜索。即,层选择单元202在无声标记sflag(i)为“2”的情况下,判断为通过对层 3、4的代码的解码所得的合成音的功率非常小,并判断为对层3、4的代码的解码的必要性低。另一方面,在图8所示的ST201 208中,层选择单元202在ST301 308的帧搜索中未发现具有应解码的代码的层的情况下(图8所示的ST302 “是”),不参照无声标记 sflag (i),而仅参照状态矩阵state (i,j),再次搜索表示已到达但未解码的号“ 1 ”。S卩,层选择单元202在图8所示的ST301 308中通过参照无声标记,降低作为无声区间的帧的高层(层3、4)的代码的解码优先级(即,跳过高层的代码的解码),进行其他帧的搜索。然后,层选择单元202在未发现具有应解码的代码的层的情况下,在图8所示的ST201 208中对所有层搜索具有应解码的代码的层。至此,结束决定解码代码的帧号和层号的方法的说明。接着,详细说明解码单元203的有声/无声判定处理。图9是表示本实施方式的解码单元203的内部结构中的进行有声/无声判定处理的结构单元的结构的方框图。在图9中,振幅搜索单元231从合成音存储单元106中取出时间序列的合成音 syn(i, t)及频谱的合成音speC(i,f)。然后,振幅搜索单元231搜索合成音syn(i,t)及 spec(i,f)各自振幅的最大值。具体而言,振幅搜索单元231通过比较合成音syn(i,t)或 spec(i, f)的各信号值的绝对值,搜索合成音syn(i,t)及speC(i,f)各自振幅的最大值。 这里,将syn (i,t)的最大振幅设为maxsyn (i),将spec (i,f)的最大振幅设为maxspec (i)。 并且,振幅搜索单元231将作为搜索结果的maxSyn(i)及maXSpec(i)输出到比较单元233。常数存储单元232存储对合成音syn (i,t)及spec (i,f)各自的常数。这里,将对 syn(i,t)的常数设为Msyn,将对spec(i,f)的常数设为Mspec。2个常数Msyn及Mspec预先被设定为可在听觉上判断为无声的十分小的值。比较单元233将从振幅搜索单元231输入的maxsyn (i)及maxspec (i)和存储在常数存储单元232中的常数Msyn及Mspec分别进行比较。S卩,比较单元233比较maxsyn (i) 与Msyn,并且比较maxspec(i)与Mspec。然后,比较单元233在比较的结果为maxsyn (i) 小于Msyn、且maxspec (i)小于Mspec的情况下,将帧号i的帧判断为无声,生成“2”作为无声标记sflag(i)。另一方面,比较单元233在上述以外的情况下,将帧号i的帧判断为有声,生成“1”作为无声标记sflag(i)。然后,比较单元233将生成的无声标记sflag(i)输出到无声标记存储单元201中。这样,解码单元203仅在某帧的所有合成音小于预先设定了的振幅(常数)的情况下,判定为该帧无声。换言之,解码单元203在即使某帧的任意一个合成音为预先设定的振幅(常数)以上的情况下,也会判定为该帧有声。另外,解码单元203分别进行时间序列的合成音syn(i,t)及频谱的合成音speC(i,f)的有声/无声判定,仅在判定为两者是无声的情况下,判定为帧号i的帧是无声。换言之,解码单元203即使在判定为时间序列的合成音syn(i,t)及频谱的合成音specif)中任意一个为有声的情况下,也会判定为帧号i 的帧是有声。这样,语音解码装置200通过使用解码单元203中的层2的解码时得到的无声标记,估计层3、4的代码(编码信息)的重要性。具体而言,语音解码装置200在无声标记表示无声区间的情况(“2”的情况)下,估计为层3、4的代码的重要性较小。其原因在于,在可扩展编码解码器中,低层的编码误差(编码失真)在高层中被编码,因此越是高层,则功率期望值越小。即,对于层2的解码时被判定为无声区间的帧,即使将对层2的高层即层3、 4的代码(编码信息)进行解码所得的合成音和低层的合成音相加,加算结果也很有可能被判定为无声区间。因此,语音解码装置200降低对无声标记为“2”(即无声区间)的帧的层 3、4的代码的解码优先级(即,跳过对层3、4的代码的解码),由此能够高效地进行可扩展编码解码器的解码。图10是表示一例无声标记sflag(i)的图。图10是图3所示的状态矩阵的状态及图4所示的代码数据矩阵的状态的情况下存储在无声标记存储单元201中的无声标记。在图10所示的帧0中,如图3所示那样,解码到层2的代码为止,因此进行了有声/无声判定。在图10中,帧0是表示语音为有声的“1”。另一方面,关于图10所示的帧1 3,如图3所示那样,未将层2以后的代码进行解码,因此未进行有声/无声判定。因此,在图10中,帧1 3是表示未将层2以后的代码进行解码的“0”。这样,在本实施方式中,与实施方式1相同,语音解码装置在搜索具有应解码的代码的层时,在各个帧中不进行高于分组未到达的层的高层的搜索,就搜索下一帧。并且,语音解码装置在搜索具有应解码的代码的层时,在各个帧的某层中判定为无声区间的情况下,不进行高于该层的高层的搜索,就搜索下一帧。由此,根据本实施方式,与实施方式1相比,进一步提前地进行解码处理来提前生成合成音,因此能够在规定时间内连续地将处理器用于其他用途,并且即使由于紧急中断将处理器用于其他用途,也能够不间断地生成合成首。以上对本发明的各实施方式进行了说明。在上述实施方式中,说明了将4帧及5层的代码进行解码的情况,但本发明不限于此,可应用于各种层数的可扩展编码解码器。例如,ITU-T标准G. 729. 1的可扩展编码解码器由12层构成,因此在上述实施方式中,也可与该规格相配。即,本发明不取决于层数。另外,帧数也可根据系统来进行各种变更。在使用多帧的代码数据矩阵时,即使分组分散地到达,也有与其帧数相应的余量,因此使用发送的所有代码数据进行高质量的解码的概率提高,并且分组不会浪费。在根据系统的性能需要尽量减少分组的处理延迟的情况下,只要调整帧数减少延迟即可。即,本发明不取决于帧数。另外,在上述实施方式中,全部是使用了 5层,但本发明不限于此,即使是决定在语音解码装置中使用的层的最大数、将最大数的层的代码的解码结果合成而输出生成了的合成音的规格,本发明也是有效的。在该情况下,在分组接收单元101中,可以丢弃不需要的高层的分组。即,本发明不取决于语音解码装置与语音编码装置的层数差异。另外,在上述实施方式中,利用合成单元112(或合成单元205)的功能,在存储在状态/代码存储单元103及合成音存储单元106中的矩阵的更新时进行了存储器移位。但是,本发明不限于此,也可以对于帧循环地使用各矩阵的存储器,不进行存储器移位。由此, 能够节约存储器移位的运算量。另外,在上述实施方式中,公开了按照不同顺序发送各层分组的情况,但本发明不限于此,即使在几个层的代码被汇总传输的情况下,本发明也是有效的。原因在于,在该情况下,只要对存储在状态/代码存储单元103及合成音存储单元106中的矩阵汇总读写即可。另外,即使不汇总读写,也可以将其汇总作为1层的代码来处理。即,本发明不取决于传输的分组的层数。另外,在上述实施方式中,说明了如下情况在来不及对分组进行合成的情况下, 或者例如层0、1的分组到达、层2的分组未到达、层3、4的分组到达的情况下,层3、4的分组的解码结果不能应用于合成。但是,本发明不限于此,能够将层3、4的分组的解码结果用于生成以后的帧的解码时使用的滤波器或预测的状态。由此,能够确保以后的帧的解码性能。另外,在上述实施方式中,说明了语音解码装置从多个帧中的时刻较早的帧(即, 帧号较小的帧)起依序搜索状态矩阵的号为“1”的层的情况。但是,在本发明中,语音解码装置也可与帧号顺序无关地选择帧。
再者,上述实施方式是本发明的优选实施方式的例证,本发明的范围并不限定于此。只要是具有语音解码装置的系统,则本发明可适用于任何情况。另外,在上述实施方式中说明的语音解码装置可搭载在移动通信系统的通信终端装置及基站装置中,这样,可提供具有与上述相同的作用效果的通信终端装置、基站装置及移动通信系统。另外,在上述实施方式中,说明了以硬件构成本发明的情况,但本发明也可通过软件来实现。例如,通过编程语言记述本发明的算法,并预先将该程序存储在存储器中,由信息处理单元执行该程序,从而可实现与本发明的语音解码装置等同样的功能。另外,上述实施方式的各功能块典型地通过集成电路的LSI (大规模集成电路)来实现。这些块既可以被单独地集成为一个芯片,也可以包含一部分或全部地被集成为一个芯片。另外,根据集成程度的不同,LSI有时也称为IC(集成电路)、系统LSI、超大LSI (Super LSI)、或特大 LSI (Ultra LSI)等。另外,实现集成电路化的方法不仅限于LSI,也可使用专用电路或通用处理器来实现。也可以利用可在UI制造后编程的FPGA (Field Programmable Gate Array 现场可编程门阵列),或者可重构LSI内部的电路单元的连接或设定的可重构处理器(Reconfigurable Processor)0再者,如果由于半导体技术的进步或派生的别的技术而出现了替代LSI的集成电路化的技术,则当然也可以用该技术来进行功能块的集成化。还存在着适用生物技术等的可能性。在2009年3月13日提交的特愿第2009-060792号的日本专利申请及在2009年 7月15日提交的特愿第2009-166796号的日本专利申请所包含的说明书、附图和说明书摘要的公开内容,全部引用于本申请。工业实用性本发明的语音解码装置特别适合用于具有分层结构的可扩展编码解码器。
权利要求
1.语音解码装置,包括接收单元,在多个帧中接收在由多个层构成的语音编码装置中生成了的各个层的代码并进行存储;以及解码单元,将所述各个层的代码进行解码, 所述语音解码装置还包括选择单元,选择与在未解码状态的所述各个层的代码中的、最先进行解码的代码对应的帧号和层号,所述接收单元进一步存储表示所述各个层的代码是否未接收、是否未解码、或是否解码完毕的解码状态,并在输入了更新指示的情况下进行所述解码状态的更新,所述选择单元通过搜索所述解码状态,选择与代码对应的所述帧号及所述层号,并且将所述解码状态的所述更新指示输出到所述接收单元,所述代码是在所述接收单元中存储或更新了所述解码状态时所述解码状态为未解码状态,在存储或更新后最先进行解码的代码,所述解码单元将与所述帧号及所述层号对应的代码进行解码。
2.如权利要求1所述的语音解码装置,所述选择单元在所述解码状态的搜索中,对于1帧,将所述解码状态为未解码状态的层中的、存在于比所述解码状态为解码完毕的层高1层的层的代码、或者所述1帧中的最低层的代码作为最先进行解码的代码,并选择与所述最先进行解码的代码对应的所述帧号及所述层号,在对于所述1帧不能进行所述选择的情况下,对下一帧继续进行搜索。
3.如权利要求1所述的语音解码装置,还包括 判定单元,对每个帧判定是否为无声区间;以及 判定结果存储单元,对每个帧存储所述判定单元的判定结果, 所述选择单元使用所述解码状态和所述判定结果,进行所述解码状态的搜索。
4.如权利要求3所述的语音解码装置,所述选择单元跳过在所述多个帧中的、所述判定结果为无声区间的帧而进行所述解码状态的搜索。
5.如权利要求1所述的语音解码装置,还包括合成单元,对于1帧,将所述解码单元中对所述帧号及所述层号的代码进行解码而生成了的解码信号和解码完毕的其他层的解码信号合成,生成合成音。
6.语音解码方法,包括接收步骤,在多个帧中接收在由多个层构成的语音编码装置中生成了的各个层的代码,并将其存储在存储器中;以及解码步骤,将所述各个层的代码进行解码, 所述语音解码方法还包括选择步骤,选择与在未解码状态的所述各个层的代码中的、最先进行解码的代码对应的帧号和层号,在所述接收步骤中,进一步将表示所述各个层的代码是否未接收、是否未解码、或是否解码完毕的解码状态存储在所述存储器中,并在被指示了更新的情况下进行所述存储器的所述解码状态的更新,在所述选择步骤中,通过搜索所述解码状态,选择与代码对应的所述帧号及所述层号, 并且对所述存储器指示所述解码状态的更新,所述代码是在所述存储器中存储或更新了所述解码状态时所述解码状态为未解码状态,在存储或更新后最先进行解码的代码, 在所述解码步骤中,将与所述帧号及所述层号对应的代码进行解码。
全文摘要
公开了语音解码装置,其能够在规定时间内连续地将处理器用于其他用途,并且即使由于紧急中断而将处理器用于其他用途,也可以不间断地生成合成音。在该装置中,分组接收单元(101)接收多个帧的各层的分组,并且从接收到的分组中取出代码。状态/代码存储单元(103)存储代码和代码的解码状态。层选择单元(104)根据解码状态选择与最先应该解码的代码对应的帧号和层号。解码单元(105)将选择出的帧号及层号的代码进行解码。
文档编号G10L19/00GK102349102SQ20108001137
公开日2012年2月8日 申请日期2010年3月12日 优先权日2009年3月13日
发明者森井利幸, 江原宏幸 申请人:松下电器产业株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1