Una primera nota: la mayoría de los sistemas modernos de texto a voz, como el de AT&T con el que se ha vinculado, utilizan síntesis de voz concatenativa . Esta técnica utiliza una gran base de datos de grabaciones de la voz de una persona que pronuncia una larga colección de oraciones, seleccionadas para que exista la mayor cantidad de combinaciones de fonemas. Se puede sintetizar una oración simplemente uniendo segmentos de este corpus: el desafío es hacer que la unión sea perfecta y expresiva.
Hay dos grandes obstáculos si desea utilizar esta técnica para hacer que el presidente Obama diga palabras embarazosas:
- Debe tener acceso a una gran colección de oraciones de la voz de destino, preferiblemente grabadas con condiciones de grabación uniformes y de buena calidad. AT&T tiene un presupuesto para grabar docenas de horas del mismo orador en el mismo estudio, pero si quieres fingir la voz de alguien con solo 5 minutos de grabación, será difícil.
- Existe una considerable cantidad de alineamiento manual y preprocesamiento antes de que la materia prima grabada esté en el "formato" correcto para ser explotada por un sistema de síntesis de voz concatenante.
Su intuición de que esta es una posible solución es válida, siempre que tenga el presupuesto para abordar estos dos problemas.
Afortunadamente, existen otras técnicas que pueden funcionar con menos supervisión y menos datos. El campo de síntesis de voz interesado en "falsificar" o "imitar" una voz de una grabación se conoce como conversión de voz . Tiene una grabación A1 del hablante objetivo A que dice la oración 1, y una grabación B2 del hablante fuente B que dice la oración 2, tiene como objetivo producir una grabación A2 del hablante A que dice la oración 2, posiblemente con acceso a una grabación B1 de la reproducción del hablante B con su voz la misma expresión que el hablante objetivo.
El esquema de un sistema de conversión de voz es el siguiente:
- Las características de audio se extraen de la grabación A1, y se agrupan en clases acústicas. En esta etapa, es un poco como si las bolsas fueran todas "a" del hablante A, todas "o" del hablante A, etc. Tenga en cuenta que esta es una operación mucho más simple y tosca que el verdadero reconocimiento de voz: no nos interesa reconociendo palabras correctamente formadas, y ni siquiera sabemos qué bolsa contiene "o" y qué bolsa contiene "a", solo sabemos que tenemos múltiples instancias del mismo sonido en cada bolsa.
- El mismo proceso se aplica en B2.
- Las clases acústicas de A1 y B2 están alineadas. Para continuar con la analogía de las bolsas, esto es equivalente a emparejar las bolsas de los pasos 1 y 2, de modo que todos los sonidos que tenemos en esta bolsa del altavoz A deben corresponder a los sonidos que tenemos en esa bolsa del altavoz B. Esta coincidencia es mucho más fácil de hacer si se usa B1 en el paso 2.
- Se estima una función de mapeo para cada par de bolsas. Como sabemos que esta bolsa contiene sonidos del hablante A, y esa bolsa tiene los mismos sonidos pero dicho por el hablante B, podemos encontrar una operación (por ejemplo, una multiplicación de matriz en vectores de características) que los haga corresponder. En otras palabras, ahora sabemos cómo hacer que la "o" del altavoz 2 suene como la "o" del altavoz 1.
- En esta etapa tenemos todas las tarjetas en la mano para realizar la conversión de voz. De cada segmento de la grabación de B2, utilizamos el resultado del paso 2. para determinar a qué clase acústica corresponde. Luego usamos la función de mapeo estimada en el paso 4 para transformar el segmento.
Insisto en el hecho de que esto funciona a un nivel mucho más bajo que realizar reconocimiento de voz en B2, y luego hacer TTS usando la voz de A1 como corpus.
Se utilizan varias técnicas estadísticas para los pasos 1 y 2: GMM o VQ son las más comunes. Se utilizan varios algoritmos de alineación para la parte 2: esta es la parte más complicada, y obviamente es más fácil alinear A1 vs B1 que A1 vs B2. En el caso más simple, métodos como Dynamic Time Warping pueden usarse para hacer la alineación. En cuanto al paso 4, la transformación más común son las transformaciones lineales (multiplicación de matrices) en los vectores de características. Las transformaciones más complejas crean imitaciones más realistas, pero el problema de regresión para encontrar el mapeo óptimo es más complejo de resolver. Finalmente, en cuanto al paso 5, la calidad de la resíntesis está limitada por las características utilizadas. Los LPC son generalmente más fáciles de manejar con un método de transformación simple (tomar marco de señal -> estimar residual y espectro de LPC -> si es necesario residual de cambio de tono -> aplicar espectro de LPC modificado al residuo modificado). ¡La clave aquí es utilizar una representación del habla que pueda invertirse nuevamente en el dominio del tiempo y que proporcione una buena separación entre prosodia y fonemas! Finalmente, siempre que tenga acceso a grabaciones alineadas de los hablantes A y B que dicen la misma oración, hay modelos estadísticos que abordan simultáneamente los pasos 1, 2, 3 y 4 en un solo procedimiento de estimación de modelo.
Podría volver con una bibliografía más tarde, pero un muy buen lugar para comenzar a tener una idea del problema y el marco general utilizado para resolverlo es el sistema "A de Stylianou, Moulines y Cappé" para la conversión de voz basado en clasificación probabilística y un armónico. modelo plus de ruido ".
Que yo sepa, no existe una gran cantidad de software que realice la conversión de voz, solo propiedades de modificación de software de la voz de origen, como parámetros de tono y longitud del tracto vocal (por ejemplo, el transformador IRCAM TRAX), con los que tiene que meterse con la esperanza de hacer su grabación de sonido más cerca de la voz objetivo.