(54) Título: QUANTIZAÇÃO DE INFORMAÇÃO DE CLASSE PARA RECONHECIMENTO DE FALA DISTRIBUÍDO (51) Int.CI.: G10L 25/72; G10L 25/90; G10L 25/93; G10L 15/30 (52) CPC: G10L 25/72,G10L 25/90,G10L 25/93,G10L 15/30 (30) Prioridade Unionista: 07/02/2003 US 10/360,582 (73) Titular(es): INTERNATIONAL BUSINESS MACHINES CORPORATION. GOOGLE TECHNOLOGY HOLDINGS LLC (72) Inventor(es): TENKASI V. RAMABADRAN; ALEXANDER SORIN
1/40
QUANTIZAÇÃO DE INFORMAÇÃO DE CLASSE PARA RECONHECIMENTO DE
FALA DISTRÍBUIDO
Campo da Invenção:
A presente invenção relaciona-se genericamente ao 5 campo de sistemas de reconhecimento da fala distribuídos e, mais particularmente, relaciona-se ao reconhecimento da fala distribuído para comunicação de largura de banda estreita e de comunicação sem fio.
Histórico da Invenção:
Com o advento de dispositivos de radiochamada e de telefones móveis, a indústria de serviço sem fio cresceu para uma indústria de multi-bilhões de dólares. A maior parte da receita para os Provedores de Serviço Sem Fio (WSPs) se origina de assinaturas. Como tal, a capacidade do
WSP de administrar uma rede bem sucedida está dependente da qualidade do serviço fornecido aos assinantes por uma rede tendo uma largura de banda limitada. Para este fim, WSPs estão constantemente à procura de meios de mitigar a quantidade de informação que é transmitida pela rede enquanto mantém uma alta qualidade de serviço aos assinantes.
Recentemente, o reconhecimento da fala gozou de sucesso na indústria de serviço sem fio. O reconhecimento da fala é utilizado para uma variedade de aplicações e serviços. Por exemplo, o assinante de serviço sem fio pode ser dotado de um recurso de discagem veloz pelo qual o assinante fala o nome de um recipiendiário de uma chamada dentro do dispositivo sem fio. O nome do recipiendiário é reconhecido utilizando o reconhecimento da fala e uma chamada é iniciada entre o assinante e o recipiente. Em
Petição 870170093740, de 01/12/2017, pág. 9/61
2/40 outro exemplo, informação sobre aquele que chama (411) pode utilizar o reconhecimento da fala para reconhecer o nome de um recipiente ao qual o assinante está tentando fazer uma chamada.
À medida que o reconhecimento da fala ganha a aceitação na comunidade sem fio, o Reconhecimento da Fala Distribuída (DSR) surgiu como uma tecnologia emergente. DSR refere-se a uma estrutura em que as parcelas de extração de características e de reconhecimento de padrão de um sistema de reconhecimento da fala são distribuídos. Isto é, as partes de extração de características e de reconhecimento de padrão do sistema de reconhecimento da fala são efetuados por duas unidades de processamento diferentes em duas localidades diferentes. Especificamente, o processo de extração de características é efetuado na extremidade frontal, isto é, no dispositivo sem fio, e o processo de reconhecimento de padrão é efetuado na extremidade traseira, isto é, pelo provedor de serviço sem fio. O DSR aprimora o reconhecimento da fala para tarefas mais complicadas como as reservas aéreas automatizadas com informação de vôo falada ou transações de corretores com recursos similares.
O “European Telecommunications Standards Institute” (ETSI) promulga um conjunto de normas para DSR. As normas de DFSR da ETSI ES 201 108 (abril de 2000) e ES 202 050 (julho de 2002) definem os algoritmos de extração de características e de compressão na extremidade frontal. No entanto, essas normas não incorporam a reconstrução da fala na extremidade traseira, que poderá ser importante em algumas aplicações. Como resultado novos, Work Items WI-030
Petição 870170093740, de 01/12/2017, pág. 10/61
3/40 e WI-034 foram liberados pela ETSI para ampliar as normas acima (ES 201 108 e ES 202 050, respectivamente) para incluir a reconstrução da fala na extremidade traseira bem como o reconhecimento da linguagem tonal.
Nas atuais normas DSR, as características que são extraídas, comprimidas, e transmitidas para a extremidade traseira são 13 Coeficientes Cepstrais de Mel Freqüência (MFCC), C0-C12, e o logaritmo do quadro-energia, log-E. Essas características são atualizadas a cada 10 ms ou 100 vezes por segundo. Nas propostas para as normas ampliadas (isto é, em resposta aos Work Items descritos acima), informação de pitch e de classe (ou de vocalização) também são derivadas para cada quadro e transmitidas além dos MFCCs e do log-E. Isto aumenta a quantidade de informação que é transmitida pelo dispositivo sem fio pela rede e consume largura de banda adicional. Assim, é desejável que a representação de informação de classe e de pitch seja tão compacta quanto possível para manter baixa a taxa de bit.
Nos codificadores da fala, a prática normal tem sido a de quantizar a informação de pitch e a informação de classe separadamente. Em alguns codificadores, a classe não vocalizada é representada por um valor de pitch zero, por exemplo, o codificador Mixed Excitation Linear Predictive (MELP - Preditivo Linear de Excitação Mista), que é a norma Federal dos Estados Unidos a 2400 bps. Infelizmente, os múltiplos tipos de classes propostos para as normas ampliadas requerem quantidade crescente de informação para representar, e largura de banda crescente para transmitir, a informação de classe.
Portanto, existe uma necessidade para superar os
Petição 870170093740, de 01/12/2017, pág. 11/61
4/40 problemas com a tecnologia anterior, conforme discutido acima.
Sumário da Invenção:
Sucintamente, de acordo com a presente invenção, é 5 revelado um sistema, método e meio lido por computador para quantizar informação de classe e informação de pitch de áudio. Em uma versão da presente invenção, o método em um sistema de processamento da informação inclui receber áudio e capturar um quadro do áudio. O método ainda inclui determinar um pitch do quadro e calcular uma palavra de código que representa o pitch do quadro, em que um primeiro valor de palavra de código indica um pitch indefinido. O método ainda inclui determinar uma classe do quadro, em que a classe é qualquer uma de pelo menos duas classes que indicam um pitch indefinido e pelo menos uma classe que indica um pitch definido. O método ainda inclui calcular uma palavra de código que representa a classe do quadro, em que o comprimento da palavra de código é o máximo dentre o número mínimo de bits necessários para representar as pelo menos duas classes que indicam um pitch indefinido e o número mínimo de bits necessários para representar as pelo menos duas classes que indicam um pitch definitivo. O pitch e a classe do quadro são representados pelas duas palavras de código.
Em outra versão da presente invenção, um sistema de processamento da informação para quantizar a informação de classe e a informação de pitch do áudio inclui um microfone para receber o áudio e capturar um quadro do áudio. O sistema de processamento da informação ainda inclui um processador de sinal digital para determinar um pitch do
Petição 870170093740, de 01/12/2017, pág. 12/61
5/40 quadro e calcular uma palavra de código que representa o pitch do quadro, em que um primeiro valor de palavra de código indica um pitch indefinido. O processador de sinal digital ainda determina uma classe do quadro, em que a classe é qualquer uma de pelo menos duas classes que indicam um pitch indefinido e pelo menos uma classe que indica um pitch definido. O processador de sinal digital ainda calcula uma palavra de código que representa a classe do quadro, em que o comprimento da palavra de código é o máximo dentre o número mínimo de bits necessários para representar as pelo menos duas classes que indicam um pitch indefinido e o número mínimo de bits necessários para representar a pelo menos uma classe que indica um pitch definido. O pitch e a classe do quadro são representados pelas duas palavras de código.
As versões preferidas da presente invenção são vantajosas porque elas servem para diminuir a quantidade de bits utilizada para transmitir informação de áudio por uma rede de comunicação. Isto é benéfico porque as redes de comunicação possuem largura de banda limitada. As economias de bits são traduzidas em tornar mais largura de banda disponível para os assinantes atuais ou adicionais. Assim, a presente invenção fornece tanto um melhoramento no desempenho da rede como um aumento na qualidade da comunicação.
Descrição Sucinta dos Desenhos:
A Figura 1 é um diagrama de blocos que ilustra uma rede para o reconhecimento da fala distribuído de acordo com uma versão preferida da presente invenção.
0 A Figura 2 é um diagrama de blocos detalhado de um
Petição 870170093740, de 01/12/2017, pág. 13/61
6/40 sistema de comunicação sem fio para o reconhecimento da fala distribuído de acordo com uma versão preferida da presente invenção.
A Figura 3 é um diagrama de blocos que ilustra um dispositivo sem fio para um sistema de comunicação sem fio de acordo com uma versão preferida da presente invenção.
A Figura 4 é um diagrama de blocos que ilustra o intercâmbio de dados de um dispositivo sem fio com o provedor de serviço sem fio.
A Figura 5 é um diagrama de fluxo operacional que mostra o processo geral de reconhecimento da fala distribuído de acordo com uma versão preferida da presente invenção.
A Figura 6 é um diagrama de fluxo operacional que mostra o processo de quantização de classe e de pitch de acordo com uma versão preferida da presente invenção.
A Figura 7 é um diagrama de blocos que ilustra as alocações de bit convencionais para o processo de quantização de classe e de pitch.
0 A Figura 8 é um diagrama de blocos que ilustra as alocações de bit para o processo de quantização de classe e de pitch de acordo com uma versão preferida da presente invenção.
As Figuras 9A, 9B e 9C são diagramas de fluxo operacional que mostra outro processo de quantização de pitch de acordo com uma versão preferida da presente invenção.
A Figura 10 é um diagrama de blocos de um sistema de processamento da informação útil para implementar uma versão preferida da presente invenção.
Petição 870170093740, de 01/12/2017, pág. 14/61
7/40
Descrição Detalhada:
A presente invenção, de acordo com uma versão preferida, supera com vantagem problemas com a tecnologia anterior ao efetivamente reduzir o número de bits utilizados na quantização de classe, como será discutido em detalhe abaixo.
I. Visão Geral:
A Figura 1 é um diagrama de blocos que ilustra uma rede para o Reconhecimento da Fala Distribuído (DSR) de acordo com uma versão preferida da presente invenção. A Figura 1 mostra um servidor de rede ou provedor de serviço sem fio 102 que opera em uma rede 104, que conecta o servidor/provedor de serviço sem fio 102 aos clientes 106 e 108. Em uma versão da presente invenção, a Figura 1 representa um sistema de computador de rede, que inclui um servidor 102, uma rede 104, e computadores de clientes 106 a 108. Em uma primeira versão, a rede 104 é uma rede comutada por circuito, como a Rede de Telefonia de Serviço Público (PSTN). Alternativamente, a rede 104 é uma rede comutada por pacote. A rede comutada por pacote é uma rede de área ampla (WAN), como a Internet global, uma WAN privada, uma rede de área local (LAN), uma rede de telecomunicação ou qualquer combinação das redes mencionadas acima. Em outra alternativa, a rede 104 é uma rede de fiação, uma rede sem fio, uma rede de irradiação, ou uma rede ponto-a-ponto.
Na primeira versão, o servidor 102 e os clientes de computador 106 e 108 compreendem um ou mais computadores pessoais (PCs) (por exemplo, estações de trabalho PC da IBM ou compatível que processa o sistema operacional Microsoft
Petição 870170093740, de 01/12/2017, pág. 15/61
8/40
Windows 95/98/2000/ME/CE/NT/XP, computadores Macintosh processando o sistema operacional Mac OS, PCs processando o sistema operacional LINUX ou equivalente), ou qualquer outros dispositivos de processamento por computador.
Alternativamente, o servidor 102 e os clientes de computador 106 e 108 incluem um ou mais sistemas servidores (por exemplo, estações de trabalho SUN Ultra processando o sistema operacional SunOS ou AIX, estações de trabalho IBM RS/6000 e servidores processando o sistema operacional AIX ou servidores processando o sistema operacional LINUX).
Em outra versão da presente invenção, a Figura 1 representa um sistema de comunicação sem fio, que inclui um provedor de serviço sem fio 102, uma rede sem fio 104 e dispositivos sem fio 106 a 108. O provedor de serviço sem fio 102 é um serviço de telefone móvel analógico de primeira geração, um serviço de telefone móvel digital de segunda geração ou um serviço de telefone móvel com capacidade para Internet de terceira geração.
Nesta versão, a rede sem fio 104 é uma rede de telefonia móvel, uma rede de dispositivo de mensagens de texto móvel, uma rede de radiochamada, ou assemelhados. Ainda, a norma de comunicação da rede sem fio 104 da Figura 1 é Code Division Multiple Access (CDMA - Acesso Múltiplo de Divisão por Código), Time Division Multiple Access (TDMA
- Acesso Múltiplo de Divisão por Tempo), Global System for
Mobile Communications (GSM - Sistema Global para Comunicação Móvel), General Packet Radio Service (GPRS Serviço de Rádio de Pacote Geral), Frequency Division Multiple Access (FDMA - Acesso Múltiplo de Divisão por
Freqüência), ou assemelhados. A rede sem fio 104 suporta
Petição 870170093740, de 01/12/2017, pág. 16/61
9/40 qualquer número de dispositivos sem fio 106 a 108, que são telefones móveis, dispositivos de mensagens de texto, computadores de mão, dispositivos de radiochamada, bipes, ou assemelhados.
Nesta versão, o provedor de serviço sem fio 102 inclui um servidor, que compreende um ou mais Computadores Pessoais (PCs) (por exemplo, estações de trabalho PC da IBM ou compatível processando o sistema operacional Microsoft Windows 95/98/2000/ME/CE/NT/XP, computadores Macintosh processando o sistema operacional Mac OS, PCs processando o sistema operacional LINUX ou equivalente), ou qualquer outros dispositivos de processamento por computador. Em outra versão da presente invenção, o servidor do provedor de serviço sem fio 102 é um ou mais sistemas servidores (por exemplo, estações de trabalho SUN Ultra processando o sistema operacional SunOS ou AIX, estações de trabalho IBM RS/6000 e servidores processando o sistema operacional AIX ou servidores processando o sistema operacional LINUX).
Como foi explicado acima, DSR refere-se a uma estrutura em que parte de extração de característica e de reconhecimento de padrão de um sistema de reconhecimento da fala são distribuídos. Isto é, as partes de extração de característica e de reconhecimento de padrão do sistema de reconhecimento da fala são efetuadas por duas unidades de processamento diferentes em duas localidades diferentes. Especificamente, o processo de extração de característica é efetuado pela extremidade frontal, por exemplo, os dispositivos sem fio 106 e 108, e o processo de reconhecimento de padrão é efetuado pela extremidade
0 traseira, por exemplo, por um servidor do provedor de
Petição 870170093740, de 01/12/2017, pág. 17/61
10/40 serviço sem fio 102. O processo de extração de característica, conforme efetuado na extremidade frontal pelos dispositivos sem fio 106 e 108, é descrito em maior detalhe abaixo.
A Figura 2 é um diagrama de blocos detalhado de um sistema de comunicação sem fio para DSR de acordo com uma versão preferida da presente invenção. A Figura 2 é um diagrama de blocos mais detalhado do sistema de comunicação sem fio descrito com referência à Figura 1 acima. O sistema de comunicação sem fio da Figura 2 inclui uma controladora 201 acoplada a estações base 202, 203, e 204. Além disso, o sistema de comunicação sem fio da Figura 2 faz interface com uma rede externa através de uma interface telefônica 206. As estações base 202, 203, e 204 suportam individualmente partes de uma área de cobertura geográfica que contém unidades assinantes ou transceptores (isto é, dispositivos sem fio) 106 e 108 (ver a Figura 1). Os dispositivos sem fio 106 e 108 fazem interface com as estações base 202, 203, e 204 utilizando um protocolo de comunicação, como CDMA, FDMA, TDMA, GPRS e GSM.
A área de cobertura geográfica do sistema de comunicação sem fio da Figura 2 é dividida em regiões ou células, que são servidas individualmente pelas estações base 202, 203, e 204 (também referidas aqui como servidores de célula). Um dispositivo sem fio que opera dentro do sistema de comunicação sem fio seleciona um servidor de célula particular como sua interface principal para operações de recepção e de transmissão dentro do sistema. Por exemplo, o dispositivo sem fio 106 tem um servidor de célula 202 como seu principal servidor de célula, e o
Petição 870170093740, de 01/12/2017, pág. 18/61
11/40 dispositivo sem fio 108 tem o servidor de célula 204 como seu servidor de célula principal. Preferivelmente, o dispositivo sem fio seleciona um servidor de célula que fornece a melhor interface de comunicação dentro do sistema de comunicação sem fio. Ordinariamente, isto dependerá da qualidade do sinal dos sinais de comunicação entre o dispositivo sem fio e um servidor de célula particular.
À medida que o dispositivo sem fio se desloca entre várias localidades geográficas na área de cobertura, uma transferência ou entrega poderá ser necessária para outro servidor de célula, que então funcionará como o servidor de célula principal. O dispositivo sem fio monitora os sinais de comunicação entre as estações base que servem células vizinhas para determinar o novo servidor mais apropriado para fins de transferência. Além de monitorar a qualidade de um sinal transmitido de um servidor de célula vizinho, o dispositivo sem fio também monitora a informação de código de cor transmitida associada ao sinal transmitido para rapidamente identificar qual servidor de célula vizinho é a fonte do sinal transmitido.
A Figura 3 é um diagrama de blocos que ilustra um dispositivo sem fio para um sistema de comunicação sem fio de acordo com uma versão preferida da presente invenção. A Figura 3 é um diagrama de blocos mais detalhado do dispositivo sem fio descrito com referência às Figuras 1 e 2 acima. A Figura 3 mostra um dispositivo sem fio 106, como mostrado na Figura 1. Em uma versão da presente invenção, o dispositivo sem fio 106 é um rádio bilateral capaz de receber e de transmitir sinais de freqüência de rádio por um canal de comunicação sob um protocolo de comunicação
Petição 870170093740, de 01/12/2017, pág. 19/61
12/40 como CDMA, FDMA, TDMA, GPRS ou GSM. O dispositivo sem fio
106 opera sob o controle de uma controladora 302 que comuta o dispositivo sem fio 106 entre os modos de recepção e de transmissão. No modo de recepção, a controladora 302 acopla uma antena 316 através de um comutador de transmissão/recepção 314 a um receptor 304. O receptor 304 decodifica os sinais recebidos e fornece esses sinais decodificados à controladora 302. No modo de transmissão, a controladora 302 acopla a antena 316, através do comutador
314, a um transmissor 312.
A controladora 302 opera o transmissor e o receptor de acordo com instruções armazenadas na memória 310. As instruções armazenadas incluem um algoritmo de escalonamento da medição da célula vizinha. A memória 310 é uma memória Flash, outra memória não volátil, memória de acesso aleatório (RAM), memória de acesso aleatório dinâmica (DRAM) ou assemelhadas. Um módulo de cronômetro 311 fornece informação de tempo para a controladora 302 manter o acompanhamento de eventos cronometrados. Ainda, a controladora 302 pode utilizar a informação de tempo do módulo de cronômetro 311 para manter o acompanhamento do escalonamento para as transmissões do servidor de célula vizinho e informação de código de cor transmitida.
Quando uma medição de célula é escalonada, o receptor
304, sob o controle da controladora 302, monitora os servidores de célula vizinhos e recebe um indicador de qualidade de sinal recebido (RSQI). O circuito RSQI 308 gera sinais RSQI que representam a qualidade de sinal dos sinais transmitidos por cada servidor de célula monitorado.
Cada sinal RSQI é convertido para informação digital por um
Petição 870170093740, de 01/12/2017, pág. 20/61
13/40 conversor analógico-para-digital 306 e fornecido como entrada para a controladora 302. Utilizando a informação do código de cor e o indicador de qualidade do sinal recebido associado, o dispositivo sem fio 106 determina o servidor de célula vizinha mais apropriado para usar como servidor de célula principal quando a transferência é necessária.
O processador 320 na Figura 3 efetua várias funções como as funções atribuídas ao reconhecimento da fala distribuída, descrita em maior detalhe abaixo. Em várias versões da presente invenção, o processador 320 na Figura 3 é um único processador ou mais de um processador para efetuar as tarefas descritas acima.
II. Reconhecimento da Fala Distribuída:
A Figura 4 é um diagrama de blocos que ilustra o intercâmbio de dados de um dispositivo sem fio 106 com o provedor de serviço sem fio 102. A Figura 4 é um diagrama de blocos mais detalhado de um dispositivo sem fio 106 descrito com referência às Figuras 1 e 2, acima. Algumas das funções que são efetuadas no dispositivo sem fio 106 também são mostradas. A Figura 4 mostra um dispositivo sem fio 106 e a rede sem fio 104, como é mostrado na Figura 1. Há, também, mostrados o processador 320 e o transmissor 312 do dispositivo sem fio 106, como é mostrado na Figura 3.
Em uma versão da presente invenção, o dispositivo sem fio 106 também inclui um microfone 404 para receber áudio 402. O áudio recebido 402 é então processado pelo processador 320. Entre os processos efetuados pelo processador 320, a classe e o pitch de um quadro de áudio
402 são quantizados pelo processador 320. A classe e o pitch de um quadro de áudio 402 é incorporado em, pelo
Petição 870170093740, de 01/12/2017, pág. 21/61
14/40 menos, uma palavra de código que está incluída em um pacote
406. O pacote 406 é então transmitido pelo transmissor 312 através da rede 104 a um servidor ou provedor de serviço sem fio 102. Os processos de quantizar a classe e o pitch de um quadro de áudio 402 e gerar pelo menos uma palavra de código são descritos em maior detalhe abaixo.
A Figura 5 é um diagrama de fluxo operacional que mostra o processo geral de reconhecimento de fala distribuído de acordo com uma versão preferida da presente invenção. O diagrama de fluxo operacional da Figura 5 representa o processo, em um cliente 106, de efetuar extração de característica do áudio de entrada e o processo, no servidor ou provedor de serviço sem fio 102, de efetuar o reconhecimento de padrão. O diagrama de fluxo operacional da Figura 5 inicia com a etapa 502 e flui diretamente para a etapa 504.
Na etapa 504, o cliente 106 recebe áudio para transmissão ao servidor 102. Em uma versão em que o sistema da Figura 1 representa uma rede sem fio, como a descrita na
Figura 2, na etapa 504 o dispositivo sem fio 106 recebe áudio 404 (ver a Figura 4) através de um microfone 404. A seguir, na etapa 506, o cliente 106 prossegue a efetuar extração de característica no áudio que foi recebido. A extração de característica inclui a quantização dos valores de pitch e de classe para um quadro. A extração de características é descrita em maior detalhe abaixo. Na versão da rede sem fio, na etapa 506 o processador 320 (ver a Figura 3) do dispositivo sem fio 106 prossegue para efetuar a extração de característica no áudio 402.
Na etapa 508, o cliente 106 gera dados de pacote que
Petição 870170093740, de 01/12/2017, pág. 22/61
15/40 incluem as características extraídas para transmissão ao servidor 102. A geração do pacote de dados é descrita em maior detalhe abaixo. Na versão da rede sem fio, na etapa
508 o dispositivo sem fio 106 gera pacote de dados 406 que inclui as características extraídas. A seguir, na etapa 510, o cliente 106 prossegue para transmitir o pacote de dados para o servidor 102. Na versão da rede sem fio, na etapa 510, o transmissor 312 do dispositivo sem fio 106 prossegue para transmitir o pacote de dados 406 para o provedor da rede sem fio no servidor 102, através da rede sem fio 104.
Na etapa 512, o servidor 102 recebe os dados de pacote enviados pelo cliente 106 e, na etapa 514, o servidor 102 prossegue para reconstruir o áudio com base nos dados de pacote. Na etapa 516, o servidor 102 efetua o reconhecimento da fala com base nos dados de pacote recebidos do cliente 106. Na versão da rede sem fio, na etapa 512, o provedor de serviço sem fio ou servidor 102 recebe o pacote de dados 406 enviado pelo dispositivo sem fio 106 e, na etapa 514, o provedor do serviço sem fio ou servidor 102 prossegue a reconstruir o áudio com base nos dados de pacote. Na etapa 516, o servidor 102 efetua o reconhecimento da fala com base nos dados de pacote recebidos do cliente 106. Na versão da rede sem fio, na etapa 512, o provedor do serviço sem fio ou servidor 102 recebe o pacote de dados 406 enviado pelo dispositivo sem fio 106 e, na etapa 514, o provedor de serviço sem fio ou o servidor 102 prossegue reconstruindo o áudio com base no pacote 406. Na etapa 516, o provedor de serviço sem fio ou servidor 102 efetua o reconhecimento da fala com base no
Petição 870170093740, de 01/12/2017, pág. 23/61
16/40 pacote de dados 406 recebido do dispositivo sem fio 106. Na etapa 518, o fluxo operacional da Figura 5 pára.
III. Criação do Pacote de Dados:
A. Primeiro Esquema de Quantização
Nas propostas para as normas DSR estendidas (em resposta ao Work Items WI-030 e WI-034), a informação de classe (ou de vocalização) para um quadro pode pitchar quatro valores possíveis: 1) não fala, isto é, silêncio ou ruído de fundo; 2) sem vocalização; 3) vocalizado misto; e 4) inteiramente vocalizado. Esses quatro valores podem geralmente ser divididos em duas categorias: não vocalizada (que inclui as classes de não fala e de sem vocalização) e vocalizado (que inclui as classes vocalizada misto e inteiramente vocalizada). Para quantizar informação de classe para um quadro, 2 bits são normalmente necessários, pois há quatro valores de classe a representar e 2 bits podem representar quatro valores. A informação de pitch para o quadro pode pitchar qualquer valor que varia de cerca de 19 a cerca de 140 amostras. Para quantizar informação de pitch para um quadro, por exemplo, como valores integrais, 7 bits são normalmente necessários pois há 122 valores de pitch a representar e 7 bits podem representar 128 valores.
Em uma versão preferida da presente invenção, ao combinar a informação de classe e a informação de pitch, um bit por quadro pode ser economizado conforme segue. Uma das palavras de código de pitch de 7 bits (a palavra de código tudo zero, por exemplo) é utilizada para indicar que a classe não é vocalizada (isto é, sem fala ou não vocalizada). As 127 palavras de código de pitch de 7 bits
Petição 870170093740, de 01/12/2017, pág. 24/61
17/40 não-zero restantes são utilizadas para representar diferentes valores de pitch bem como a informação de que a classe é vocalizada (isto é, vocalizada mista ou de inteiramente vocalizada). Isto é, uma das palavras de código de pitch de 7 bits indica que a classe não é vocalizada enquanto as palavras de código restantes indicam que a classe é vocalizada. Conseqüentemente, um bit de classe é agora suficiente para remover a ambigüidade entre as duas classes vocalizadas (isto é, entre as classes de não fala e de não vocalizada) e entre as duas classes vocalizadas (isto é, entre as classes vocalizada mista e não vocalizada).
A tabela abaixo mostra um exemplo de valores de palavra de código de pitch de 7 bits e valores de palavra de código de 1 bit utilizados para indicar informação de pitch e de classe, conforme descrito acima.
Tipo de classe |
Palavra de código
de pitch de 7 bits |
Palavra de código
de classe de 1 bit |
Não fala |
tudo zero |
0 |
Sem vocalização |
tudo zero |
1 |
Vocalizado mista |
não zero |
0 |
Inteiramente
vocalizada |
não zero |
1 |
Assim, em resumo, de acordo com o presente exemplo, o número total de bits utilizados para representar a informação de classe e de pitch é de 8 bits. Isto é oposto aos 9 bits que teriam sido necessários para representar a informação de classe e de pitch, se a informação de classe e de pitch tivesse sido quantizada separadamente (isto é, 7 bits para pitch e 2 bits para classe; ver acima). A
Petição 870170093740, de 01/12/2017, pág. 25/61
18/40 penalidade incorrida para esse esquema é que uma das 128 palavras de código de pitch foi utilizada para indicar informação de classe. Dada a relativa desimportância de uma palavra de código, isto tem muito pouco (e insignificante) impacto na precisão da quantização do pitch.
A Figura 6 é um diagrama de fluxo operacional que mostra um processo de quantização de classe e de pitch de acordo com uma versão preferida da presente invenção. O diagrama de fluxo operacional da Figura 6 representa o processo, em um cliente 106, de calcular informação de pitch e de classe e gerar um pacote de dados que representa o mesmo. A Figura 6 descreve em maior detalhe as etapas 506 e 508 da Figura 5. O diagrama de fluxo operacional da Figura 6 inicia com a etapa 602 e flui diretamente para a etapa 604.
Na etapa 604, o cliente 106 calcula o valor de pitch do áudio que foi recebido. Na versão exemplar da rede sem fio, na etapa 604, o dispositivo sem fio 106 (mais especificamente, o processador 320 do dispositivo sem fio
106) calcula o valor de pitch do áudio 402 que foi recebido através do microfone 404. Na etapa 606, o cliente 106 efetua a quantização do pitch com base no valor do pitch do áudio. Em um exemplo, a quantização do pitch de 7 bits é efetuada, como foi descrita acima. Na versão da rede sem fio, na etapa 606, o dispositivo sem fio 106 efetua a quantização do pitch com base no valor do pitch do áudio
402.
Na etapa 608, o cliente 106 efetua o cálculo da classe do áudio. Na etapa 610, o cliente 106 determina se a classe que foi calculada na etapa 608 é da categoria não
Petição 870170093740, de 01/12/2017, pág. 26/61
19/40 vocalizada, isto é, a classe de não fala ou a classe não vocalizada. Se o resultado da determinação da etapa 610 é positiva, então o controle flui para a etapa 612. Se o resultado da determinação da etapa 610 é negativo, então o controle flui para a etapa 616.
Na etapa 612, o cliente 106 fixa uma palavra de código de pitch a uma palavra de código de pitch predefinida que indica o quadro de uma categoria de classe não vocalizada (isto é, classe de não fala ou classe não vocalizada). Em um exemplo, o cliente 106 fixa uma palavra de código de pitch de 7 bits para tudo zero - a palavra de código de pitch predefinida que indica o quadro de uma classe de não fala ou uma classe não vocalizada. Na etapa 614, o cliente 106 fixa uma palavra de código de classe para indicar a classe do quadro de uma categoria de classe não vocalizada (isto é, quer a classe de não fala ou a classe não vocalizada). Em um exemplo, o cliente 106 fixa a palavra de código de classe de um bit que indica a classe de não fala ou a classe não vocalizada.
Na etapa 616, o cliente 106 fixa uma palavra de código de pitch para o valor de pitch gerado para a quantização de pitch efetuada na etapa 604. Em um exemplo, o cliente 106 fixa uma palavra de código de pitch de 7 bits para o valor de pitch gerado para a quantização de pitch efetuada na etapa 604. Na etapa 618, o cliente 106 fixa uma palavra de código de classe para indicar a classe do quadro de uma categoria de classe vocalizada (isto é, vocalizado misto ou inteiramente vocalizado). Em um exemplo, o cliente 106 fixa uma palavra de código de classe de um bit que indica quer a classe vocalizada mista ou a classe inteiramente
Petição 870170093740, de 01/12/2017, pág. 27/61
20/40 vocalizada. Na etapa 620, o fluxo operacional da Figura 6 pára.
A Figura 7 é um diagrama de blocos que ilustra as alocações de bit convencionais para um processo de quantização de classe e de pitch. A Figura 7 mostra que sete bits representam a quantização de pitch 702. Assim, 128 valores possíveis são utilizados para representar um dado do período de pitch de um quadro de áudio. A Figura 7 também mostra que dois bits representam quantização de classe 704. Assim, quatro valores possíveis são utilizados para representar a classe de um quadro de áudio. Quatro classes são definidas: não fala, não vocalizado, vocalizado misto e inteiramente vocalizado. Portanto, de acordo com a Figura 7, um total de nove bits são utilizados para representar os valores de quantização de pitch e de classe para um quadro de áudio.
A Figura 8 é um diagrama de blocos que ilustra as alocações de bit para o processo de quantização de classe e de pitch de acordo com uma versão preferida da presente invenção. A Figura 8 mostra as alocações de bit para a quantização de classe e de pitch de acordo com a presente invenção. A Figura 8 mostra que sete bits representam a quantização de pitch 802. No entanto, dos 128 valores possíveis disponíveis com os sete bits, apenas 127 valores são utilizados para representar dados de período de pitch de um quadro de áudio. O um valor restante é utilizado para indicar a informação de classe, especificamente, a categoria de classe não vocalizada (isto é, classe não fala ou classe não vocalizada). Preferivelmente, o um valor de
802 utilizado para indicar a categoria de classe é tudo
Petição 870170093740, de 01/12/2017, pág. 28/61
21/40 zero e este valor indica um quadro de categoria de classe não vocalizado (isto é, classe não fala ou classe não vocalizada). Os outros 127 valores de 802 são utilizados para indicar o valor de pitch de um quadro de categoria vocalizada (isto é, classe vocalizada mista ou classe inteiramente vocalizada).
A Figura 8 também mostra que um bit representa a quantização de classe 804. Esta é uma vantagem significativa da presente invenção. Assim, dois valores possíveis, ou palavras de código, são utilizados para mais representar a classe de um quadro de áudio. Os dois valores possíveis são utilizados para diferenciar entre a categoria de classe não vocalizada (isto é, classe não fala ou classe não vocalizada) e entre o quadro de categoria vocalizada (isto é, a classe vocalizada mista ou a classe inteiramente vocalizada). Preferivelmente, um valor zero de 804 é utilizado para indicar uma classe de não fala se 802 é tudo zero, um valor zero de 804 é utilizado para indicar a classe vocalizada mista se 802 não é tudo zero, um valor de um de 804 é utilizado para indicar uma classe não vocalizada se 802 é tudo zero, e um valor de um de 804 é utilizado para indicar uma classe inteiramente vocalizada se 802 não é tudo zero (ver a tabela acima). Portanto, de acordo com a Figura 8, um total de oito bits é utilizado para representar os valores de quantização de pitch e de classe para um quadro de áudio.
B. Segundo Esquema de Quantização:
Nas propostas para as normas DSR ampliadas, o período de pitch é estimado para cada quadro e é atualizado a cada
10 ms (ou 100 vezes por segundo) . O período de pitch
Petição 870170093740, de 01/12/2017, pág. 29/61
22/40 estimado pode assumir valores fracionados e faixas de cerca de 19 a cerca de 140 amostras a uma taxa de amostragem de 8 kHz. Portanto, a freqüência de pitch estimada varia de cerca de 57 Hz a cerca de 420 Hz. Quando efetuar o processo de quantização de pitch, é desejável atingir precisão, isto é, baixo erro de quantização, uma taxa de bit baixa, e robustez contra erros de canal.
Em uma versão preferida da presente invenção, todos os quadros de número par (iniciando com o primeiro quadro numerado zero) são quantizados utilizando 7 bits e todos os quadros numerados ímpar são quantizados utilizando 5 bits. Considerados como pares de quadros, o primeiro quadro em um quadro de par é quantizado utilizando 7 bits e o segundo quadro em um par de quadros é quantizado utilizando 5 bits.
Assim, o número médio de bits por quadro é seis. Isto corresponde a uma taxa de bits de 600 bps devido apenas à quantização de pitch.
Um esquema de quantização absoluto é utilizado para os quadros de numeração par. Das 128 palavras de código disponíveis, uma palavra de código (isto é, a palavra de código tudo zero) é utilizada para transmitir informação da classe de categoria não vocalizada, isto é, indicar que o quadro é de não fala ou não vocalizado. As 127 palavras de código restantes são utilizadas para a quantização do período de pitch. Este esquema é descrito em maior detalhe acima. O pitch, que varia de cerca de 19 a cerca de 140 amostras, é igualmente dividido (no domínio logarítmico) em 127 regiões e os pontos médios dessas regiões são escolhidos como os níveis de reconstrução. Para qualquer valor de pitch, o valor de pitch quantizado correspondente
Petição 870170093740, de 01/12/2017, pág. 30/61
23/40 é escolhido como o nível de reconstrução mais próximo no domínio linear. As 127 palavras de código são designadas uma-a-uma aos 127 níveis de reconstrução. O erro de quantização máximo com este projeto quantizador é de cerca de 0,8%.
Para os quadros de numeração ímpar, um esquema de quantização diferencial é utilizado na maioria das vezes. No entanto, sob certas situações (como mostradas na tabela abaixo), um esquema de quantização absoluto também é utilizado. Para o esquema de quantização diferencial, uma referência precisa ser selecionada para que a diferença entre o valor do período de pitch do quadro atual e o valor de referência (ou mais apropriadamente, a proporção entre os dois valores) possa ser quantizada. Embora o período de pitch quantizado do quadro anterior fornece a melhor referência possível, este quadro nem sempre poderá ser uma categoria da classe vocalizada (isto é, vocalizado misto ou inteiramente vocalizado). Portanto, o valor do período de pitch quantizado de um dos três quadros anteriores é selecionado como a referência. Isto é, a quantização diferencial do segundo quadro de um par de quadros é efetuada utilizando o valor do período de pitch quantizado do primeiro quadro do par de quadros ou um dos dois valores de período de pitch quantizado do par de quadros anterior como a referência.
No lado do servidor, é importante limitar a propagação de erros devido a um erro em um dos valores do período de pitch decodificado. Para este fim, identificamos cada valor de pitch quantizado no lado do cliente como sendo confiável (R) ou não confiável (U) para servir como referência. Cada
Petição 870170093740, de 01/12/2017, pág. 31/61
24/40 valor de pitch quantizado de modo absoluto é considerado como confiável. Cada valor de pitch quantizado de modo diferencial é considerado confiável se a referência utilizada para sua quantização é o valor do período de pitch quantizado do primeiro quadro do mesmo par de quadros. Como os valores do período de pitch dos quadros vizinhos são geralmente próximos um do outro, os valores de período de pitch próximos do valor de referência são finamente quantizados e os valores de período de pitch mais distantes da referência são quantizados grosseiramente. Os níveis de quantização escolhidos para a quantização diferencial dependem de qual dos três valores de pitch quantizados anteriores foi escolhido como a referência bem como o valor de referência. A tabela abaixo ilustra como os valores do período de pitch de quadros de numeração ímpar são quantizados.
P(-2) |
P(-1) |
P(0) |
Ação pitchada |
0 |
0 |
0 |
Quantização absoluta |
0 |
1U |
0 |
Quantização absoluta |
* |
*
|
1 |
Quantização diferencial:
Referência P(0) |
*
|
1R |
0 |
Quantização diferencial:
Referência P(-1) |
1 |
0 |
0 |
Quantização diferencial:
Referência P(-2) |
1 |
1U |
0 |
Quantização diferencial:
Referência P(-2) |
Na tabela acima, o valor a ser quantizado é P(1), o valor do período de pitch do segundo quadro de um par de quadros. O valor de referência é o valor do período de
Petição 870170093740, de 01/12/2017, pág. 32/61
25/40 pitch quantizado de um dos três quadros anteriores, isto é,
P(0), o valor do período de pitch quantizado do primeiro quadro do mesmo par de quadros, (P-1), o valor do período de pitch quantizado do segundo quadro do par de quadros anterior, e P(-2), o valor do período de pitch quantizado do primeiro quadro do par de quadros anterior.
Na tabela, o valor de 0 indica que o quadro correspondente é uma classe da categoria não vocalizada (isto é, classe não fala ou classe não vocalizada). O valor de 1 indica que o quadro correspondente é da categoria de classe vocalizada (isto é, classe vocalizada mista ou classe inteiramente vocalizada) e seu valor de período de pitch quantizado pode ser utilizado como referência. Para o P(-1) quantizado de modo diferencial, também temos 1R e
1U para indicar se o valor do período de pitch quantizado é confiável ou não confiável, respectivamente. Um indica que o período de pitch quantizado é inconseqüente, isto é, o valor pode ser 0 ou 1 e isso não faz diferença. Como condições iniciais, supomos que P(-1)=0 e
P(-2)=0 tanto no codificador (isto é, cliente 106) como no decodificador (isto é, o servidor 102). A última coluna indica se o pitch foi quantizado de modo absoluto ou diferencial e se diferencial, o quadro de referência utilizado.
Quando os três quadros anteriores são de uma classe de categoria não vocalizada ou quando o único valor de referência disponível é não confiável P(-1), P(1) é quantizado de modo absoluto utilizando 5 bits. Uma palavra de código, como a palavra de código tudo zero, é utilizada para indicar que o quadro é de uma classe de categoria não
Petição 870170093740, de 01/12/2017, pág. 33/61
26/40 vocalizada. As 31 palavras de código restantes são utilizadas para quantizar o período de pitch P(1) de maneira similar àquela utilizada para quantizar os valores de período de pitch dos quadros de numeração par. A opção de quantização absoluta utilizando 5 bits é escolhida tipicamente para o primeiro quadro de um segmento vocalizado ou para alguns quadros erroneamente classificados pertencentes a uma condição de fundo com ruído. De qualquer modo, o erro de quantização ligeiramente maior resultante da utilização de apenas 5 bits não causa qualquer perda da qualidade de fala significativa ou da inteligibilidade. A utilização de apenas 5 bits ajuda a limitar a propagação de erros de decodificação como explicaremos posteriormente.
Quando o primeiro quadro de um par de quadros é de uma classe de categoria vocalizada, então o valor do período de pitch quantizado correspondente é sempre escolhido como a referência independentemente dos valores de P(-1) e de P(2). De acordo com uma versão exemplar, das 32 palavras de código possíveis (utilizando a quantização de 5 bits do valor do período de pitch), uma palavra de código, como a palavra de código tudo zero, é utilizada para indicar que o quadro atual é de não fala/não vocalizado. Vinte e sete palavras de código são utilizadas para abranger uma pequena faixa de pitch ao redor do valor de referência de maneira logarítmica (similar à quantização absoluta de 7 bits discutida acima). Ambos os pontos terminais da faixa de pitch representam níveis de reconstrução. Os quatro níveis restantes são utilizados para quantizar grosseiramente o resto da faixa de pitch conforme indicado na tabela.
Petição 870170093740, de 01/12/2017, pág. 34/61
27/40
Observe que os quatro níveis escolhidos dependem do valor de P(0). Por exemplo, se P(0) é pequeno, então os quatro níveis são maiores que P(0). Por outro lado, se P(0) é grande, então todos os quatro níveis são menores que P(0).
Quando o primeiro quadro de um par de quadros é da classe da categoria não vocalizada, então ou P(-1) ou P(-2) é escolhido como a referência. Se P(-1) corresponde a um quadro da classe de categoria vocalizada e é confiável, então ele é escolhido como a referência independentemente do valor de P(-2). Se P(-1) corresponde a um quadro de classe de categoria vocalizada ou corresponde a um quadro da classe de categoria vocalizada mas é não confiável, e P(-2) corresponde a um quadro da classe de categoria vocalizada, então P(-2) é escolhido como a referência. Quer
P(-1) ou P(-2) são escolhidos como a referência, o método de quantização é similar. Uma das palavras de código, como a palavra de código tudo zero, é utilizada para indicar que o quadro atual é da classe de categoria não vocalizada. 25 palavras de código são utilizadas para abranger uma pequena faixa de pitch ao redor do valor de referência de maneira logarítmica (similar à quantização absoluta de 7 bits discutida acima). Tanto os valores como a faixa de pitch representam níveis de reconstrução. Os seis níveis restantes são utilizados para quantizar grosseiramente o resto da faixa de pitch.
O esquema de quantização acima satisfaz os requisitos de precisão, taxa de bits baixa, e robustez, conforme segue. Ao quantizar os valores de período de pitch dos quadros de numeração par com 7 bits e aqueles dos quadros de numeração ímpar com 5 bits, a média de 1 bit por quadro
Petição 870170093740, de 01/12/2017, pág. 35/61
28/40 é economizada, isto é, 100 bits por segundo. Ao mesmo tempo, a precisão não é comprometida. A quantização absoluta de sete bits é precisa o suficiente. A quantização absoluta de cinco bits é utilizada tipicamente para o primeiro quadro de um segmento vocalizado e para alguns quadros de fundo com ruído. De qualquer modo, a falta de precisão não é crítica e não afeta a qualidade ou a inteligibilidade da fala reconstruída de qualquer maneira significativa. Com a quantização diferencial de 5 bits, os valores do período de pitch, que estão próximos do valor de referência, são quantizados de modo bastante preciso. Esses são os valores de período de pitch de alta probabilidade. Os valores de período de pitch, que estão mais distantes do valor de referência são de baixa probabilidade e são quantizados grosseiramente. Mais uma vez, o maior erro na quantização desses valores não é crítico e não afeta de modo significativo a qualidade ou a inteligibilidade da fala reconstruída.
A propagação de erro na presente invenção é limitada aos valores de período de pitch quantizados de modo diferencial como confiáveis ou não confiáveis e pela utilização da quantização absoluta de cinco bits para os quadros de numeração ímpar sempre que não houver valor de referência disponível ou o único valor de referência disponível é não confiável. Por exemplo, considere a situação em que um número de quadros de quadros foi apagada. Este é o tipo mais comum de situação de erro de canal para um canal DSR. Suponha que os bits correspondentes aos quadros que seguem aqueles apagados foram recebidos de forma correta. Se o primeiro quadro do
Petição 870170093740, de 01/12/2017, pág. 36/61
29/40 par de quadros que segue aqueles apagados é um quadro vocalizado, então não há nenhuma propagação de erro. Isto se deve ao fato de o primeiro quadro sempre ser quantizado de modo absoluto (utilizando sete bits) e o segundo quadro é quantizado de modo diferencial utilizando o valor do período de pitch quantizado do primeiro quadro como a referência. Outrossim, os quadros seguintes não dependem de qualquer um dos quadros apagados.
Se o primeiro quadro é de uma classe de categoria não 10 vocalizada, então o segundo quadro não pode ser decodificado corretamente a menos que ele também seja de uma classe de categoria não vocalizada. Pois o valor de pitch do segundo quadro poderia ter sido quantizado de modo diferencial utilizando o valor de pitch quantizado de um do último quadro apagado como referência. Neste caso, o erro
propagou-se |
para o |
segundo quadro |
após |
aqueles |
apagados. |
Se o |
terceiro |
quadro é de |
uma |
classe |
de categoria |
vocalizada, |
então |
a propagação |
de |
erro cessa pois os |
valores do período de pitch quantizados de todos os quadros após o terceiro quadro não dependem dos quadros apagados nem do par de quadros corretamente recebido após aqueles apagados. Se o terceiro quadro é de uma classe de categoria não vocalizada, então o valor do período de pitch quantizado do quarto quadro pode ser decodificado com sucesso porque ele precisa ter sido quantizado de modo absoluto dado que o primeiro e o terceiro quadros são de uma classe de categoria não vocalizada e o segundo quadro é não confiável. Portanto, a propagação de erro após um ou mais pares de quadros terem sido apagados cessa após dois quadros no máximo.
Petição 870170093740, de 01/12/2017, pág. 37/61
30/40
De modo similar, pode ser mostrado que qualquer erro no valor do período de pitch decodificado de um quadro de numeração par (devido a erros de bit aleatórios) pode propagar-se para cima até três quadros no máximo. Além disso, qualquer erro no valor do período de pitch decodificado de um quadro de numeração ímpar (devido aos erros de bit aleatórios) pode propagar-se para cima até dois quadros no máximo.
As Figuras 9A, 9B e 9C são um diagrama de fluxo 10 operacional que mostra outro processo de quantização de pitch de acordo com uma versão preferida da presente invenção. O diagrama de fluxo operacional das Figuras 9A, 9B e 9C representa o processo, em um cliente 106, de calcular a informação de pitch para um quadro, gerar um pacote de dados que representa o mesmo, e continuar com o quadro seguinte. As Figuras 9A, 9B e 9C descrevem em maior detalhe as etapas 506 e 508 da Figura 5. O diagrama de fluxo operacional das Figuras 9A, 9B e 9C inicia com a etapa 902 (na Figura 9A) e flui diretamente para a etapa
904.
Na etapa 903, o cliente 106 calcula o valor de pitch do áudio para o quadro atual. Na versão da rede sem fio, na etapa 903, o dispositivo sem fio 106 (mais especificamente o processador 320 do dispositivo sem fio 106) calcula o valor de pitch do áudio 402 que foi recebido através do microfone 404. Na etapa 904, o cliente 106 determina se o quadro atual é um quadro par ou um quadro ímpar. Se o resultado da determinação da etapa 904 é par, então o controle flui para a etapa 910. Se o resultado da determinação da etapa 904 é ímpar, então o controle flui
Petição 870170093740, de 01/12/2017, pág. 38/61
31/40 para a etapa 905. Na etapa 905, o quadro atual é um quadro ímpar e, assim, o cliente 106 prossegue para encontrar um quadro de referência adequado para utilizar para a quantização de pitch diferencial. Na etapa 906, o controle flui diretamente para a etapa 916(B) da Figura 9B.
Na etapa 910, o cliente 106 efetua a quantização de pitch absoluta com base no valor de pitch do áudio. Em um exemplo, a quantização de pitch absoluta de 7 bits é efetuada, conforme descrita acima. Na versão da rede sem fio, na etapa 910, o dispositivo sem fio 106 efetua a quantização de pitch absoluta com base no valor de pitch do áudio 402.
Na etapa 912, o cliente 106 fixa uma palavra de código de pitch ao valor de pitch gerado para a quantização de pitch absoluta efetuada na etapa 910. Em um exemplo, o cliente 106 fixa uma palavra de código de pitch de 7 bits ao valor de pitch gerado para a quantização de pitch absoluta efetuada na etapa 910. Na etapa 915(E), o controle flui diretamente para a etapa 914. Na etapa 914, o processo de quantização de pitch avança para o quadro seguinte e o controle flui diretamente de volta para a etapa 903.
Na etapa 916(B) da Figura 9B, o controle flui diretamente para a etapa 917. Na etapa 917, o cliente 106 determina se a classe do quadro imediatamente anterior ao quadro atual 0 é da classe de categoria vocalizada (isto é, da classe vocalizada mista ou da classe inteiramente vocalizada). Observe que nas Figuras 9B e 9C, o quadro atual é designado quadro 0, o quadro imediatamente anterior ao quadro 0 é o quadro -1, o quadro imediatamente anterior ao quadro -1 é o quadro -2, e o
Petição 870170093740, de 01/12/2017, pág. 39/61
32/40 quadro imediatamente anterior ao quadro -2 é o quadro
3. Se o resultado da determinação da etapa 917 é positivo, então o controle flui para a etapa 940. Se o resultado da determinação da etapa 917 é negativo, então o controle flui para a etapa 920. Na etapa 920, o cliente 106 prossegue para o quadro anterior para continuar a procurar um quadro de referência adequado para utilizar para a quantização de pitch diferencial.
Na etapa 927, o cliente 106 determina se a classe de 10 quadro -2 é da classe de categoria vocalizada (isto é, a classe vocalizada mista ou a classe inteiramente vocalizada). Se o resultado da determinação da etapa 927 é positiva, então o controle flui para a etapa 928. Se o resultado da determinação da etapa 927 é negativo, então o controle flui para a etapa 930. Na etapa 928, o cliente 106 determina se o valor de pitch do quadro -2 foi quantizado de modo absoluto. Se o resultado da determinação da etapa
928 é positivo, então o controle flui para a etapa 940. Se o resultado da determinação da etapa 928 é negativo, então o controle flui para a etapa 929. Na etapa 929, o cliente 106 determina se o valor de pitch do quadro -2 foi quantizado de modo diferencial e é confiável (isto é, ele foi quantizado de modo diferencial e referenciado ao quadro imediatamente anterior a ele). Se o resultado da determinação da etapa 929 é positivo, então o controle flui para a etapa 940. Se o resultado da determinação da etapa
929 é negativo, então o controle flui para a etapa 930.
Na etapa 930, o cliente 106 prossegue para o quadro anterior para continuar a procurar por um quadro de referência adequado para utilizar para a quantização de
Petição 870170093740, de 01/12/2017, pág. 40/61
33/40 pitch diferencial. Na etapa 937, o cliente 106 determina se a classe de quadro -3 é da classe de categoria vocalizada (isto é, classe vocalizada mista ou classe inteiramente vocalizada). Se o resultado da determinação da etapa 937 é positivo, então o controle flui para a etapa 940. Se o resultado da determinação da etapa 937 é negativo, então o controle flui para a etapa 942. A etapa 940 flui diretamente para a etapa 960(C) da Figura 9C e a etapa 942 flui diretamente para a etapa 950(D) da Figura 9C.
Na etapa 950(D) da Figura 9C, o controle flui diretamente para a etapa 952. Na etapa 952, é determinado que nenhum quadro de referência adequado foi encontrado para quantizar de modo diferencial o quadro atual 0. Na etapa 956, efetua a quantização de pitch absoluta com base no valor de pitch do áudio. Em um exemplo, a quantização de pitch absoluta de 5 bits é efetuada, conforme descrito acima. Na versão da rede sem fio, na etapa 956, o dispositivo sem fio 106 efetua a quantização de pitch absoluta com base no valor de pitch do áudio 402. Na etapa
958, o cliente 106 fixa uma palavra de código de pitch ao valor de pitch gerado para a quantização de pitch absoluta efetuada na etapa 956. Em um exemplo, o cliente 106 fixa uma palavra de código de pitch de 5 bits para o valor de pitch gerado para a quantização de pitch absoluta efetuada na etapa 956.
Na etapa 960(C) da Figura 9C, o controle flui diretamente para a etapa 962. Na etapa 962, é determinado que um quadro de referência adequado foi encontrado para a quantização de modo diferencial do quadro atual 0. Na etapa 966, o cliente 106 efetua a quantização de pitch
Petição 870170093740, de 01/12/2017, pág. 41/61
34/40 diferencial ao referenciar o quadro de referência identificado. Em um exemplo, a quantização de pitch diferencial de 5 bits é efetuada, conforme descrito acima.
Na etapa 968, o cliente 106 fixa uma palavra de código de pitch ao valor de pitch gerado para a quantização de pitch diferencial efetuada na etapa 966. Em um exemplo, o cliente 106 fixa a palavra de código de pitch de 5 bits ao valor de pitch gerado para a quantização de pitch diferencial efetuada na etapa 966.
Na etapa 970, o controle flui diretamente de volta para a etapa 915(E) da Figura 9A. Na etapa 915(E), o controle flui diretamente para a etapa 914. Na etapa 914, o processo de quantização de pitch avança para o quadro seguinte e o controle flui diretamente de volta para a etapa 903.
C. Revisão da Tecnologia Anterior:
Na norma Mixed Excitation Linear Prediction (MELP) (uma norma de telecomunicação), não há qualquer distinção entre quadros de fala de não fala e não vocalizados. Ambas as classes estão combinadas e indicadas por um valor de período de pitch de zero. Quatro bits adicionais são utilizados para quantizar a informação de classe quando o período de pitch é superior a zero, isto é, quando um quadro é da classe de categoria vocalizada (por exemplo, vocalizada mista ou inteiramente vocalizada). Esses quatro bits identificam a vocalização em bandas diferentes do espectro da fala. O valor de pitch é quantizado de modo absoluto utilizando 7 bits. Portanto, não há qualquer economia de bit no MELP, como o descrito na presente invenção.
Petição 870170093740, de 01/12/2017, pág. 42/61
35/40
Na LPC-10 (outra norma de telecomunicação), 7 bits são utilizados para indicar um quadro e pitch de classe de categoria vocalizada. Há 60 níveis de período de pitch e 3 níveis utilizados para indicar que: 1) ambos meio quadros são da classe de categoria não vocalizada (isto é, classe não fala e classe não vocalizada); 2) apenas o segundo meio quadro é da classe de categoria vocalizada (isto é, classe vocalizada mista e classe inteiramente vocalizada) ou 3) apenas o primeiro meio quadro é da classe de categoria vocalizada. Portanto, a LPC-10 apenas distingue entre a classe de categoria vocalizada e a classe de categoria não vocalizada. A LPC-10 não distingue entre a classe de categoria vocalizada (isto é, entre as classes de não fala e de não vocalizada) ou entre a classe de categoria não vocalizada (isto é, entre as classes vocalizada mista e inteiramente vocalizada). A presente invenção amplia a LPC10 com a introdução das classes de não fala e de não vocalizada sob a classe de categoria não vocalizada e as classes vocalizada mista e inteiramente vocalizada sob as classes de categoria vocalizada.
IV. Implementações Exemplares:
A presente invenção pode ser realizada em hardware, software, ou uma combinação de hardware e de software em clientes 106, 108 ou no servidor 102 da Figura 1. Um sistema de acordo com uma versão preferida da presente invenção, conforme descrito nas Figuras 5, 6, 9A, 9B e 9C, pode ser realizado de uma maneira centralizada em um sistema de computador, ou de maneira distribuída em que elementos diferentes são espalhados através de vários sistemas de computador interconectados. Qualquer tipo de
Petição 870170093740, de 01/12/2017, pág. 43/61
36/40 sistema de computador - ou de outro aparelho adaptado para realizar os métodos aqui descritos - é adequado. Uma combinação típica de hardware e de software poderia ser um sistema de computador de finalidade geral com um programa de computador que, quando for carregado e executado, controla o sistema de computador tal que ele realiza os métodos aqui descritos.
Uma versão da presente invenção também pode ser embutida em um produto de programa de computador (nos clientes 106 e 108 e no servidor 102), que compreende todos os recursos que permitem a implementação dos métodos aqui descritos, e que, quando carregado em um sistema de computador, é capaz de efetuar esses métodos. Meios do programa de computador ou do programa de computador conforme utilizados na presente invenção indicam qualquer expressão, em qualquer linguagem, código ou notação, de um conjunto de instruções que pretende fazer com que um sistema dotado de capacidade de processamento de informação efetue uma função particular quer diretamente ou após um ou os dois do seguinte: a) conversão para outra linguagem, código ou notação; e b) reprodução na forma de um material diferente.
Um sistema de computador poderá incluir, inter alia, um ou mais computadores e pelo menos um meio lido por computador, permitindo ao sistema de computador, ler dados, instruções, mensagens ou pacotes de mensagem, e outra informação lida por computador do meio lido por computador. O meio lido por computador poderá incluir memória não volátil, como ROM, memória Flash, memória de unidade de disco, CD-ROM, e outros armazenamentos permanentes.
Petição 870170093740, de 01/12/2017, pág. 44/61
37/40
Adicionalmente, o meio lido por computador poderá incluir, por exemplo, armazenamento volátil como RAM, memórias provisórias, memória cache, e circuitos de rede. Ademais, o meio lido por computador poderá compreender informação lida por computador em meio de estado transitório como um enlace de rede e/ou uma interface de rede, que inclui uma rede de fiação ou uma rede sem fio, que permitem que o sistema de computador leia essa informação lida por computador.
A Figura 10 é um diagrama de blocos de um sistema de 10 computador útil para implementar uma versão da presente invenção. O sistema de computador da Figura 10 inclui um ou mais processadores, como o processador 1004. O processador 1004 é conectado a uma infra-estrutura de comunicação 1002 (por exemplo, um barramento de comunicação, barra de cruzamento, ou rede). Várias versões de software são descritas em termos deste sistema de computador exemplar. Após ler esta descrição, tornar-se-á aparente a uma pessoa de habilidade ordinária na tecnologia relevante como implementar a invenção utilizando outros sistemas de computador e/ou arquiteturas de computador.
O sistema de computador pode incluir uma interface de tela 1008 que encaminha gráficos, texto, e outros dados da infra-estrutura de comunicação 1002 (ou de uma memória provisória de quadro não mostrada) para exibição na unidade de tela 1010. O sistema de computador também inclui uma memória principal 1006, preferivelmente memória de acesso aleatório (RAM), e também poderá incluir uma memória secundária 1012. A memória secundária 1012, por exemplo, poderá incluir uma unidade de disco rígido 1014 e/ou uma unidade de armazenamento removível 1016, que representa uma
Petição 870170093740, de 01/12/2017, pág. 45/61
38/40 unidade de disco flexível, uma unidade de fita magnética, uma unidade de disco óptico, etc. A unidade de armazenamento removível 1016 lê de e/ou grava para uma unidade de armazenamento removível 1018 de uma maneira bem conhecida daqueles com habilidade ordinária na tecnologia. A unidade de armazenamento removível 1018 representa um disco flexível, fita magnética, disco óptico, etc., que é lido e gravado pela unidade de armazenamento removível 1016. Como será apreciado, a unidade de armazenamento removível 1018 inclui um meio de armazenamento utilizado por computador tendo nele armazenado software de computador e/ou dados.
Em versões alternativas, a memória secundária 1012 poderá incluir outros meios similares para permitir que programas de computador ou outras instruções sejam carregados dentro do sistema de computador. Esses meios, por exemplo, poderão incluir uma unidade de armazenamento removível 1022 e uma interface 1020. Exemplos dessa poderá incluir um cartucho de programa e uma interface de cartucho (como aquela encontrada nos dispositivos de vídeo game), uma pastilha de memória removível (como EPROM, ou PROM) e soquete associado, e outras unidades de armazenamento removíveis 1022 e interfaces 1020 que permitem que software e dados sejam transferidos da unidade de armazenamento removível 1022 para o sistema de computador.
O sistema de computador também poderá incluir uma interface de comunicação 1024. A interface de comunicação
1024 permite que software e dados sejam transferidos entre o sistema de computador e dispositivos externos. Exemplos da interface de comunicação 1024 poderão incluir um modem,
Petição 870170093740, de 01/12/2017, pág. 46/61
39/40 uma interface de rede (como a placa Ethernet), uma porta de comunicação, um sulco e placa PCMCIA, etc. Software e dados transferidos através da interface de comunicação 1024 são na forma de sinais que, por exemplo, poderão ser eletrônicos, eletromagnéticos, ópticos, ou outros sinais capazes de serem recebidos pela interface de comunicação 1024. Esses sinais são fornecidos para a interface de comunicação 1024 através de uma via de comunicação (isto é, canal) 1026. Este canal 1026 porta sinais e poderá ser implementado utilizando fiação ou cabo, fibra óptica, uma linha telefônica, um enlace de telefone celular, um enlace RF, e/ou outros canais de comunicação.
Neste documento, os termos meio de programa de computador, meio utilizado por computador, meio lido por máquina e meio lido por computador são utilizados para referir-se genericamente a meio como a memória principal 1006 e a memória secundária 1012, unidade de armazenamento removível 1016, uma unidade de disco instalada em unidade de disco rígido 1014, e sinais. Esses produtos de programa de computador são meios para fornecer software para o sistema de computador. O meio lido por computador permite que o sistema de computador leia dados, instruções, mensagens ou pacotes de mensagem, e outra informação lida por computador do meio lido por computador.
O meio lido por computador, por exemplo, poderá incluir memória não volátil, como a memória flexível, ROM e memória Flash, memória de unidade de disco, CD-ROM e outro armazenamento permanente. Por exemplo, ele é útil para transportar informação, como dados e instruções de computador, entre sistemas de computador. Ademais, o meio
Petição 870170093740, de 01/12/2017, pág. 47/61
40/40 lido por computador poderá compreender informação lida por computador em meio de estado transitório como um enlace de rede e/ou uma interface de rede, que inclui uma rede de fiação ou uma rede sem fio, que permite que o computador leia essa informação lida por computador.
Os programas de computador (também denominados de lógica de controle do computador) são armazenados na memória principal 1006 e memória secundária 1012. Os programas de computador também poderão ser recebidos através da interface de comunicação 1024. Esses programas de computador, quando executados, permitem ao sistema de computador efetuar os recursos da presente invenção conforme aqui discutido. Em particular, os programas de computador, quando executados, permitem ao processador 1004 efetuar os recursos do sistema de computador. Assim, esses programas de computador representam controladoras do sistema de computador.
V. Conclusão:
Embora versões específicas da invenção tenham sido reveladas, aqueles com habilidade ordinária na tecnologia compreenderão que mudanças podem ser feitas nas versões específicas sem desviar do espírito e escopo da invenção. Portanto, o escopo da invenção não deve ser restrito às versões específicas. Ademais, pretende-se que as reivindicações apensas abranjam qualquer uma e todas essas aplicações, modificações e versões dentro do escopo da presente invenção.
Petição 870170093740, de 01/12/2017, pág. 48/61
1/4