Em outubro, anunciamos que o nosso modelo de síntese de fala state-of-the-art WaveNet estava sendo usado para gerar vozes realistas para o Assistente do Google globalmente em japonês e inglês dos EUA. Este modelo de produção – conhecido como WaveNet paralelo – é mais de 1000 vezes mais rápido do que o original e também capaz de criar áudio de qualidade superior.
Nosso último artigo apresenta detalhes do novo modelo e da técnica de “destilação de densidade de probabilidade” que desenvolvemos para permitir que o sistema funcione em um ambiente de computação massivamente paralelo.
O modelo WaveNet original usou conexões autorregressivas para sintetizar a amostra de uma forma de onda de cada vez, com cada nova amostra condicionada às amostras anteriores. Embora isso produza áudio de alta qualidade com até 24.000 amostras por segundo, esta geração seqüencial é muito lenta para os ambientes de produção.
Para contornar isso precisávamos de uma solução que pudesse gerar longas sequências de amostras de uma só vez e sem perda de qualidade. Nossa solução é chamada de destilação de densidade de probabilidade, onde usamos um modelo WaveNet totalmente treinado para ensinar uma segunda rede de “alunos”, tanto menor quanto mais paralela e, portanto, mais adequada ao hardware computacional moderno. Esta rede de estudantes é uma rede neural de convolução menor dilatada, semelhante à WaveNet original. Mas, crucialmente, a geração de cada amostra não depende de nenhuma das amostras geradas anteriormente, o que significa que podemos gerar a primeira e última palavra – e tudo no meio – ao mesmo tempo, como mostrado na animação abaixo.
Durante o treinamento, a rede de estudantes começa em um estado aleatório. É alimentado com ruído branco aleatório como entrada e é encarregado de produzir uma forma de onda de áudio contínua como saída. A forma de onda gerada é então alimentada ao modelo WaveNet treinado, que classifica cada amostra, dando ao aluno um sinal para entender o quão longe é da produção desejada da rede do professor. Ao longo do tempo, a rede estudantil pode ser ajustada – via backpropagation – para saber o que parece produzir. Dito de outra forma, o professor e o aluno fornecem uma distribuição de probabilidade para o valor de cada amostra de áudio, e o objetivo do treinamento é minimizar a divergência de KL entre a distribuição do professor e a distribuição do aluno.
O método de treinamento tem paralelos com a configuração de redes adversárias generativas (GAN), com tele estudante desempenha o papel de gerador eo professor como discriminador. No entanto, ao contrário dos GANs, o objetivo do aluno não é “enganar” o professor, mas cooperar e tentar combinar o desempenho do professor.
Embora a técnica de treinamento funcione bem, também precisamos adicionar algumas funções de perda extra para orientar o aluno para o comportamento desejado. Especificamente, adicionamos uma perda perceptiva para evitar pronúncias ruins, uma perda contrastiva para reduzir ainda mais o ruído e uma perda de energia para ajudar a combinar a energia do discurso humano. Sem o último, por exemplo, o modelo treinado sussurra em vez de falar em voz alta.
Adicionando tudo isso, permitiu-nos treinar o WaveNet paralelo para alcançar a mesma qualidade de fala que o WaveNet original, como mostrado pelos escores médios de opinião (MOS) – uma escala de 1-5 que mede de como o som é natural. de acordo com testes com ouvintes humanos. Note-se que mesmo o discurso humano é avaliado em apenas 4.667 na escala MOS.
Claro, o desenvolvimento da destilação de densidade de probabilidade foi apenas uma das etapas necessárias para permitir que a WaveNet atinja os requisitos de velocidade e qualidade de um sistema de produção. Incorporar WaveNet paralela no pipeline de serviço do Assistente do Google exigiu um esforço de engenharia igualmente significativo pelas equipes DeepMind Applied e Google Speech. Foi apenas trabalhando juntos que poderíamos passar da pesquisa fundamental para o produto da escala do Google em pouco mais de 12 meses.