Uma primeira observação: os sistemas mais modernos de conversão de texto em voz, como o da AT&T a que você se vinculou, usam síntese concatenativa de fala . Essa técnica utiliza um grande banco de dados de gravações da voz de uma pessoa que pronuncia uma longa coleção de frases - selecionadas para que o maior número de combinações de fonemas esteja presente. A sintetização de uma sentença pode ser feita apenas juntando segmentos desse corpus - a parte desafiadora é tornar a junção perfeita e expressiva.
Existem dois grandes obstáculos se você quiser usar essa técnica para fazer o presidente Obama dizer palavras embaraçosas:
- Você precisa ter acesso a uma grande coleção de frases da voz de destino, de preferência gravada com condições uniformes de gravação e boa qualidade. A AT&T tem um orçamento para gravar dezenas de horas do mesmo alto-falante no mesmo estúdio, mas se você quiser fingir a voz de alguém com apenas 5 minutos de gravação, será difícil.
- Há uma quantidade considerável de alinhamento e pré-processamento manual antes que a matéria-prima registrada esteja no "formato" certo para ser explorada por um sistema de síntese de fala concatenativo.
Sua intuição de que essa é uma solução possível é válida - desde que você tenha o orçamento para resolver esses dois problemas.
Felizmente, existem outras técnicas que podem funcionar com menos supervisão e menos dados. O campo da síntese da fala interessado em "fingir" ou "imitar" uma voz de uma gravação é conhecido como conversão de voz . Você tem uma gravação A1 da frase 1 do locutor alvo A e uma gravação B2 do locutor de origem B dizendo a frase 2, você deseja produzir uma gravação A2 da locução A do locutor A, 2, possivelmente com acesso a uma gravação B1 do locutor B reproduzindo com sua voz, a mesma expressão que o falante alvo.
O esboço de um sistema de conversão de voz é o seguinte:
- Os recursos de áudio são extraídos da gravação A1 e agrupados em classes acústicas. Nesse estágio, é um pouco como ter as malas "a" do alto-falante A, todas "o" do alto-falante A, etc. reconhecendo palavras formadas corretamente - e nem sabemos qual sacola contém "o" e qual sacola contém "a" - apenas sabemos que temos várias instâncias do mesmo som em cada sacola.
- O mesmo processo é aplicado em B2.
- As classes acústicas de A1 e B2 estão alinhadas. Para continuar com a analogia das malas, isso equivale a emparelhar as malas dos passos 1 e 2, de modo que todos os sons que temos nessa maleta do alto-falante A correspondam aos sons que temos nessa maleta do alto-falante B. Essa correspondência é muito mais fácil se B1 for usado na etapa 2.
- Uma função de mapeamento é estimada para cada par de malas. Como sabemos que esta bolsa contém sons do alto-falante A e que os mesmos sons, mas ditos pelo alto-falante B - podemos encontrar uma operação (por exemplo, uma multiplicação de matrizes em vetores de características) que os faz corresponder. Em outras palavras, agora sabemos como fazer o "o" do alto-falante 2 soar como o "o" do alto-falante 1.
- Nesta fase, temos todos os cartões em mãos para realizar a conversão de voz. De cada fatia da gravação de B2, usamos o resultado da etapa 2. para descobrir a que classe acústica corresponde. Em seguida, usamos a função de mapeamento estimada na etapa 4 para transformar a fatia.
Insisto no fato de que isso opera em um nível muito mais baixo do que o reconhecimento de fala no B2 e, em seguida, no TTS usando a voz de A1 como corpus.
Várias técnicas estatísticas são usadas para as etapas 1 e 2 - GMM ou VQ sendo as mais comuns. Vários algoritmos de alinhamento são usados na parte 2 - essa é a parte mais complicada e é obviamente mais fácil alinhar A1 x B1 do que A1 x B2. No caso mais simples, métodos como o Dynamic Time Warping podem ser usados para fazer o alinhamento. Quanto à etapa 4, as transformações mais comuns são transformações lineares (multiplicação de matrizes) em vetores de características. Transformações mais complexas criam imitações mais realistas, mas o problema de regressão para encontrar o mapeamento ideal é mais complexo de resolver. Finalmente, como na etapa 5, a qualidade da ressíntese é limitada pelos recursos utilizados. Geralmente, os LPCs são mais fáceis de lidar com um método simples de transformação (considere o quadro de sinal -> estimar o residual e o espectro LPC -> se necessário, o pitch-shift residual -> aplicar espectro LPC modificado ao residual modificado). Usar uma representação da fala que possa ser invertida de volta ao domínio do tempo e que forneça uma boa separação entre prosódia e fonema é a chave aqui! Por fim, desde que você tenha acesso às gravações alinhadas dos alto-falantes A e B dizendo a mesma frase, existem modelos estatísticos que abordam simultaneamente as etapas 1, 2, 3 e 4 em um único procedimento de estimativa de modelo.
Posso voltar com uma bibliografia mais tarde, mas um bom lugar para começar a entender o problema e a estrutura geral usada para resolvê-lo é o "Sistema de conversão de voz de Stylianou, Moulines e Cappé", com base em classificação probabilística e harmônica. mais modelo de ruído ".
Até onde eu sei, não existe um software amplamente executando conversão de voz - apenas propriedades de modificação de software da fonte de voz - como parâmetros de altura do trato vocal e do trato vocal (por exemplo, transformador IRCAM TRAX) - com os quais você precisa mexer na esperança de tornar seu som de gravação mais próximo da voz alvo.