Abstrato
Você pode ter experimentado a alteração da voz guiada ao usar alto-falantes ou navegação com IA. Eu defini a voz do alto-falante com a voz do meu ator favorito, Yoo In-na, e tornou-se importante sintetizar a fala com várias vozes, pois a tecnologia de síntese de fala foi incorporada a várias partes da vida, como assistentes pessoais, programas de notícias e instruções de voz. E há uma demanda crescente para usar não apenas as vozes de outras pessoas, mas também suas vozes como voz de IA, o que é chamado de síntese de voz personalizada no campo da pesquisa de síntese de fala.
Hoje, veremos um modelo de conversão de texto em fala (TTS) chamado AdaSpeech, que apareceu para síntese de voz personalizada. A tecnologia para gerar voz personalizada é feita principalmente por meio do processo de adaptação do modelo TTS de origem pré-treinado à voz do usuário. A maioria dos dados de fala do usuário usados no momento é pequena para fins de conveniência e, como a quantidade é pequena, é uma tarefa muito difícil fazer com que a voz gerada pareça natural e semelhante à voz original. Existem dois problemas principais no treinamento de redes neurais com voz personalizada.
Primeiro, as vozes de certos usuários geralmente têm condições acústicas diferentes dos dados de fala aprendidos com o modelo TTS de origem. Por exemplo, há uma variedade de rimas, estilos, emoções, pontos fortes e ambientes de gravação dos falantes, e as diferenças nos dados de fala resultantes delas podem prejudicar o desempenho de generalização do modelo fonte, resultando em baixa qualidade de adaptação.
Em segundo lugar, ao adaptar o modelo TTS de origem a uma nova voz, há uma desvantagem no ajuste fino dos parâmetros e na qualidade da voz. Em outras palavras, quanto mais parâmetros adaptáveis você usar, melhor será a qualidade produzida, mas maior será o uso de memória e o maior custo de implantação do modelo.
Os estudos existentes foram abordados especificando um método de ajuste fino de todo o modelo ou parte (especialmente o decodificador), ajustando apenas a incorporação de alto-falantes usada para distinguir os alto-falantes na síntese de fala de vários alto-falantes, treinando o módulo codificador de alto-falantes e assumindo que o domínio da fala de origem e dos dados adaptativos é o mesmo. No entanto, há um problema com o uso real porque há muitos parâmetros ou ele não produz uma qualidade satisfatória.
O AdaSpeech é um modelo TTS que pode gerar com eficiência as vozes de novos usuários (ou alto-falantes) com alta qualidade e, ao mesmo tempo, resolver os problemas acima. O pipeline foi amplamente dividido em três estágios: pré-treinamento, ajuste fino e inferência, e duas técnicas são usadas para resolver as dificuldades existentes. De agora em diante, vamos analisá-los juntos! 🙂
Resumo para pessoas ocupadas
- O desempenho de generalização do modelo foi aprimorado extraindo características acústicas de acordo com vários escopos dos dados de fala e adicionando-as aos vetores de codificação de fonemas existentes por meio da modelagem da condição acústica.
- Eles aprimoraram com eficiência o processo de adaptação do modelo de origem aos dados do novo alto-falante usando a normalização de camadas condicionais.
- Tornou-se possível criar vozes personalizadas de alta qualidade com menos parâmetros e menos novos dados de fala do que os modelos básicos tradicionais.
Estrutura do modelo
O modelo de backbone do AdaSpeech é o FastSpeech 2. Consiste principalmente em codificadores de fonemas, adaptadores de variância e decodificador de mel. Inclui dois novos elementos (áreas rosa na Figura 1) concebidos pelos autores.
Modelagem de condição acústica
Em geral, é importante aumentar o desempenho de generalização do modelo porque a voz de origem usada no treinamento do modelo não pode cobrir todos os recursos acústicos da voz do novo usuário. Como é difícil conter esses recursos acústicos no texto inserido pelo modelo no TTS, o modelo tem um viés em lembrar os recursos acústicos nos dados de treinamento, o que atua como um obstáculo ao desempenho de generalização ao gerar vozes personalizadas. A maneira mais simples de resolver esse problema é fornecer recursos acústicos como entrada do modelo, que é dividido em nível de alto-falante, nível de enunciado e nível de fonema, e é chamado de modelagem de condição acústica, que inclui uma variedade de recursos de som, desde informações de área ampla até informações periféricas. Cada nível contém as seguintes informações.
- Nível do alto-falante: Um nível que captura as características gerais de um alto-falante, representando a maior variedade de características acústicas (por exemplo, incorporação do alto-falante).
- Nível de enunciado: Um nível que captura características que aparecem ao pronunciar uma frase, e um espectrograma mel de uma voz de referência é usado como entrada e um vetor de características é emitido a partir dele. Ao treinar o modelo, a voz alvo se torna uma voz de referência e, em inferência, uma das vozes do locutor que você deseja sintetizar é selecionada aleatoriamente e usada como voz de referência.
- Nível do fonema: a menor faixa de níveis que captura características em unidades de fonemas em uma frase (por exemplo, força de um fonema específico, tom, rima e ruído ambiente temporário). Nesse caso, o espectrograma mel do nível do fonema expresso pela substituição dos quadros mel correspondentes ao mesmo fonema pela média dentro da seção é inserido. E na inferência, embora a estrutura seja a mesma, usamos um preditor acústico que recebe o vetor oculto do codificador do fonema como entrada e prediz o vetor do nível do fonema.
Normalização condicional da camada
O decodificador mel da AdaSpeech consiste em uma rede de autoatenção e feed-forward baseada no modelo Transformer e, como muitos parâmetros são usados nele, o processo de ajuste fino para uma nova voz não será eficiente. Assim, os autores aplicaram a normalização condicional da camada à rede de autoatenção e alimentação direta em cada camada e reduziu o número de parâmetros atualizados durante o ajuste fino atualizando a escala e o viés usados aqui para se adequar ao usuário. E a escala e o viés usados aqui são chamados de condicionais porque passam pela camada linear conforme a figura acima e esses vetores são calculados a partir da incorporação do alto-falante.
Processo de treinamento e inferência
O processo de treinar o AdaSpeech e inferir voz para novos falantes pode ser resumido com o algoritmo acima. Primeiro, pré-treine o modelo de origem com o máximo possível de dados de texto e fala e, em seguida, atualize os parâmetros usados para normalização da camada condicional e incorporação do alto-falante com os dados de fala do novo locutor por meio de ajustes finos. Em inferência, pode-se observar que o valor do parâmetro que precisa ser calculado a partir das informações do alto-falante e o valor do não ajustado por meio do aprendizado são utilizados juntos para criar um espectrograma de mel.
Resultados do experimento
Avaliação personalizada da qualidade de voz
O MelGaN foi usado como vocoder, e a naturalidade da voz personalizada sintetizada foi avaliada como MOS, e a similaridade foi avaliada em uma métrica chamada SMOS. Pode-se observar que o AdaSpeech pode sintetizar vozes de alta qualidade com apenas menos parâmetros ou parâmetros semelhantes aos da linha de base. E como o modelo TTS de origem foi pré-treinado para um conjunto de dados chamado LibreTTS, é claro, ele parece receber a pontuação mais alta quando adaptado como um novo falante do LibreTTS.
Estudo de ablação
Usando o CMOS (MOS de comparação), que pode avaliar a qualidade relativa, eles conduziram um estudo de ablação sobre técnicas reivindicadas como contribuição neste artigo. Como o CMOS do AdaSpeech, que removeu certas partes, foi menor do que o AdaSpeech básico da Tabela 2, podemos concluir que todas as técnicas contribuem para a melhoria da qualidade.
Modelagem de condição acústica Análise
A Figura 4 (a) mostra o vetor acústico do nível de enunciado dos falantes aprendidos no t-SNE. Pode-se observar que frases diferentes pronunciadas pelo mesmo falante são classificadas no mesmo agrupamento e, a partir disso, julga-se que o modelo aprendeu as características únicas de um falante ao proferir uma frase. Algumas exceções são vistas, mas essas frases geralmente são um discurso curto ou emocional, o que torna difícil distingui-las dos enunciados de outros falantes.
Normalização condicional da camada Análise
Em comparação com o CMOS, pode-se observar que a qualidade da voz é a melhor quando se usa a normalização da camada condicional. Portanto, ao realizar a normalização de camadas, é melhor modificar a escala e o viés refletindo as características do alto-falante, e pode-se resumir que atualizar somente elas tem um efeito positivo na adaptabilidade do modelo.
Quantidade de análise adaptativa de dados
Finalmente, os autores conduziram um experimento para testar quantos dados de fala de novos usuários são necessários para determinar se esse modelo é prático. Como pode ser visto na Figura 4 (b), a qualidade da voz sintetizada melhora rapidamente até que 10 amostras sejam usadas, mas desde então, não há melhora significativa, então não há problema em ajustar o AdaSpeech usando apenas 10 amostras para cada alto-falante.
Conclusão e Opinião
O AdaSpeech é um modelo TTS que tem a capacidade de se adaptar a novos usuários e, ao mesmo tempo, fazer bom uso das vantagens do FastSpeech, que já havia melhorado a velocidade com a síntese de fala paralela. A modelagem da condição acústica melhora o desempenho de generalização do modelo ao capturar as características da voz e, se ela for subdividida, pode ser criada uma IA que fale de forma mais semelhante às características do usuário. Além disso, acho que o valor do uso é infinito, pois é um modelo que pode satisfazer TTS de voz personalizado com apenas 10 amostras, mas mesmo assim, é lamentável em termos práticos que a voz do usuário e o texto correspondente sejam usados como dados para ajuste fino juntos. Na verdade, mesmo que você possa gravar sua voz entre aqueles que usam serviços de síntese de voz de IA, haverá mais usuários que se preocuparão em digitar texto juntos. Portanto, na próxima sessão, apresentaremos uma versão modificada do AdaSpeech que permite a síntese de voz personalizada sem dados emparelhados de texto e fala.
Referência
(1) [FastSpeech 2] FastSpeech 2: conversão de texto em fala rápida e de alta qualidade de ponta a ponta
(2) [Discurso da ADA] AdaSpeech: texto adaptável à fala para voz personalizada
(3) [AdaSpeech] https://speechresearch.github.io/adaspeech/
Referência
(1) [Artigo FastSpeech 2] FastSpeech 2: conversão de texto em fala rápida e de alta qualidade de ponta a ponta
(2) [Documento de discurso da ADA] AdaSpeech: texto adaptável à fala para voz personalizada
(3) [Demonstração do AdaSpeech] https://speechresearch.github.io/adaspeech/