¿Qué es un acento?
Un acento no es un filtro de sonido; es un patrón de realización acústica de texto en un idioma. No puede tomar una grabación de inglés americano, ejecutarla a través de "una serie de amplitudes y filtros" y hacer que salga el inglés británico. Para qué DSP es útil es en la implementación de prosody, no acento.
Básicamente (y más simple de modelar), un acento consiste en reglas para la realización fonética de una secuencia de fonemas. La percepción del acento se ve influenciada adicionalmente por by prosody y por los fonemas que elige un hablante al leer el texto.
generación de voz
El proceso de generación de voz tiene dos etapas básicas:
texto a fonemas: Convertir texto escrito a una secuencia de fonemas (más suprasegmentales como el estrés, y la información prosódica como límites de locución). Esto es algo acento-dependiente (por ejemplo, la salida para "laboratorio" difiere entre los altavoces estadounidenses y británicas).
Fonema a voz: dada la secuencia de fonemas, genere audio de acuerdo con las reglas del dialecto para realizaciones fonéticas de fonemas. (Normalmente, usted combina los difonos y luego ajusta acústicamente la prosodia). Esto es altamente dependiente del acento, y es este paso el que imparte la calidad principal del acento. Un fonema particular, incluso si se comparte entre dos acentos, puede tener realizaciones acústicas sorprendentemente diferentes.
Normalmente estos están sincronizados. Mientras que podría tener un generador de voz con acento británico que utiliza pronunciaciones estadounidenses, eso sonaría extraño.
generador de voz con un acento determinado
Escribir un programa de texto a voz es una enorme cantidad de trabajo (en particular, para implementar un esquema común, tiene que grabar un hablante nativo de habla cada posible diphone en el idioma), por lo que sería mejor usar uno existente.
En resumen, si desea un acento británico, use un motor de texto a texto en inglés británico junto con un motor de conversión de fonemas en inglés británico.
Para acentos comunes como inglés americano y británico, mandarín estándar, francés metropolitano, etc., habrá varias opciones, incluidas las de código abierto, que podrá modificar (como a continuación). Por ejemplo, mira FreeTTS y eSpeak. Para acentos menos comunes, desafortunadamente los motores existentes pueden no existir.
texto Hablando con un acento extranjero
Inglés-with-a-extranjera-acento es socialmente no de mucho prestigio, por lo que probablemente no existen sistemas completos.
Una estrategia sería combinar un motor estándar de texto a teléfono para un acento nativo con un motor de fonema a voz para el idioma extranjero. Por ejemplo, un hablante nativo de ruso que aprendió inglés en los EE. UU. Utilizaría plausiblemente las pronunciaciones estadounidenses de palabras como laboratorio, y correlacionaría sus fonemas con sus fonemas rusos nativos, pronunciándolos como en ruso. (Creo que hay un sitio web que hace esto para inglés y japonés, pero no tengo el enlace.)
El problema es que el resultado es demasiado extremo. Un aprendiz de inglés real intentaría reconocer y generar fonemas que no existen en su lengua materna, y también alteraría su realización de sus fonemas nativos para aproximar la pronunciación nativa. El grado de coincidencia del resultado con un hablante nativo por supuesto varía, pero usar el extremo extranjero puro suena ridículo (y casi incomprensible).
Por lo tanto, para generar un plausible americano-inglés-con-un-acento ruso (por ejemplo), tendría que escribir un motor de texto a fonema. Puede utilizar los motores existentes de texto a teléfono de inglés americano y ruso como punto de partida. Si no está dispuesto a buscar y grabar dicho altavoz, probablemente aún pueda obtener una aproximación decente usando DSP para combinar las muestras de esos dos motores. Para eSpeak, usa síntesis de formantes en lugar de muestras grabadas, por lo que podría ser más fácil combinar información de múltiples idiomas.
Otra cosa a considerar es que los hablantes extranjeros a menudo modifican la secuencia de fonemas bajo la influencia de la fonética de su lengua materna, normalmente simplificando grupos de consonantes, insertando vocales epentéticas o diptongando o rompiendo secuencias de vocales.
There is some literature on this topic.
Hay (al menos) dos cuestiones completamente disjuntos aquí: la parte de análisis de texto, y la parte de síntesis de voz. Estos deben formularse como preguntas separadas de SO. –
@Oli. Pensé en eso, pero la parte de análisis está tan estrechamente ligada a la parte de generación que creo que deberían estar juntas. – Jon
Hmmm. El primero es esencialmente un problema de análisis sintáctico/textual; el segundo es esencialmente un problema de DSP. El alcance parece demasiado amplio para una pregunta de desbordamiento de pila ... –