Chip de conversión de texto a voz (para microcontrolador)
45Microcontroladores y sistemas integrados2002.12
Nuevo dispositivo y nueva tecnología NUEVO PRODUCTO Y TECNOLOGÍA
Uso de EP7211 para realizar síntesis de voz en tiempo real y reproducción de información de paginación
■ Hu Zeming y Wang Peng, Universidad de Ingeniería de la Información PLA, Zhengzhou
Resumen
Palabras clave
Descrito en un formato dos en Un sistema PDA con función de paginación integrada, que utiliza el procesador integrado EP7211 para realizar la función de síntesis de voz en tiempo real y reproducción de mensajes de paginación personal, que incluye principalmente el establecimiento de una biblioteca de voz de caracteres, un algoritmo de síntesis de voz de caracteres y un códec.
Rutina de servicio de interrupción de voz y otras 3 partes.
PDA G.729 biblioteca de voz síntesis de voz
Introducción
PDA (Personal Digital Assitant, asistente digital personal asistente)
p>Es un producto electrónico portátil que ha surgido rápidamente en el mercado interno en los últimos años después de los buscapersonas y los teléfonos móviles. En su sentido ampliado,
se puede integrar. Tiene múltiples funciones, como informática móvil, teléfono y red. Según los diferentes requisitos de la aplicación, puede administrar información personal, proporcionar almacenamiento y programación de tarjetas de presentación y también puede recibir. diversas solicitudes de información de llamadas (como mercado de valores, pronóstico del tiempo, etc.) Si se trata de un módulo de comunicación integrado, también se puede utilizar como un teléfono móvil para la interconexión de redes inalámbricas.
Las PDA incluyen blocs de notas electrónicos simples, diccionarios electrónicos y potentes computadoras de mano. Sus principales diferencias están en los sistemas operativos, la capacidad de almacenamiento, la velocidad de computación y las capacidades de intercambio de datos, etc.
Después de varios años de rápido desarrollo
De los productos PDA tradicionales nacionales, el mercado está básicamente saturado y las ventas han experimentado un crecimiento negativo. Sin embargo, debido a
La flexibilidad de los productos PDA y las aplicaciones industriales específicas se han convertido en un nuevo punto culminante. Comenzó a prestarles atención después de la transformación para aplicaciones industriales, los productos PDA se han vuelto populares en el mercado. Wenquxing muestra fuertes capacidades de traducción de idiomas y es más adecuado para estudiantes universitarios y traductores de idiomas. ; la serie Blue Fire puede recibir información sobre el mercado de valores y
comentarios de expertos, adecuados para comerciantes de acciones de clase trabajadora.
ha fomentado la aplicación industrial y la promoción de PDA. productos en transporte, policía, seguros y otros campos
Analizando la demanda del mercado, desarrollamos un sistema de información de transporte ferroviario con función de paginación integrada,
Especialmente orientado. para la industria del transporte ferroviario
Además de las funciones tradicionales de gestión de tarjetas de visita personales de PDA y recuperación de diccionarios, también proporciona funciones como la consulta de vuelos de aviación civil. y consulta de horarios de trenes para aplicaciones de la industria del transporte
.
El sistema de localización de esta PDA realiza las siguientes funciones: puede localizar
horarios de trenes, retrasos de trenes información, boletos de tren restantes, información de seguimiento de existencias y otros datos de la industria Realizar actualizaciones dinámicas Como otra característica
al recibir una localización personal, el contenido de la localización se puede convertir en voz y reproducirse en tiempo real
..
Lo siguiente se centra en el uso del procesador integrado EP7211 en este sistema PDA para lograr la conversión de voz en tiempo real y la reproducción de contenido de localización personal. La implementación de esta función incluye 3 partes relacionadas: Carácter
Establecimiento de biblioteca de voz, algoritmo de síntesis de voz de caracteres y Codec de voz
Rutina de servicio de interrupción.
1 Condiciones y requisitos de implementación
La PDA es un sistema de aplicaciones integradas, que es muy diferente de las PC normales. En términos de hardware, el procesador integrado se basa en la arquitectura RISC. La frecuencia de funcionamiento general es de decenas de MHz o incluso inferior y la capacidad de memoria del sistema suele ser de unos pocos. cien KB y unos pocos MB generalmente una ROM o F de pequeña capacidad;
lash se utiliza como disco duro para almacenar programas y datos ejecutables. En términos de software, los sistemas PDA generalmente tienen sistemas operativos integrados dedicados y entornos de desarrollo, depuración y trasplante de software.
La característica de los mensajes de paginación personal es. que la longitud de un solo mensaje de búsqueda varía.
Es más grande, con entre 20 y 50 caracteres. El más común es "Por favor, llámame de nuevo
***"; La información de paginación implica una gran cantidad de caracteres, la síntesis de voz de caracteres requiere una gran cantidad de cálculos y los datos de voz después de la síntesis de un solo carácter ocupan mucho espacio de almacenamiento que necesitan los caracteres; que se creará con anticipación una biblioteca de voz, etc.
Debido a las limitaciones del entorno de hardware específico, las características de la información de paginación y los requisitos de
síntesis de voz, los requisitos previos para la La realización de esta función es: voz
La biblioteca ocupa un espacio pequeño; la velocidad de síntesis de caracteres debe ser rápida cuando se utiliza la interfaz
para la síntesis de voz de caracteres, el método de interrupción en segundo plano es. se utiliza para reproducir el discurso sintetizado
discurso para garantizar su estabilidad y continuidad en tiempo real.
2 Implementación específica
A continuación se presenta el establecimiento de la biblioteca de discurso de caracteres. , algoritmo de síntesis de voz de caracteres
, la estructura marco de este sistema PDA y rutina de servicio de interrupción de voz.
2.1 Estableciendo una biblioteca de voz de caracteres
Elegimos la G Estándar de codificación de compresión de voz .729 para crear una biblioteca de voz.
Este estándar adopta El algoritmo es la línea de excitación del código algebraico de la estructura ***yoke
462002.12
<. p>Nueva tecnología de dispositivo NUEVO PRODUCTO Y TECNOLOGÍAPredicción (CS-ACELP). Es un algoritmo basado en el modelo de codificación CELP (Code Excited Linear Prediction). El rigor de esta especificación de codificación permite el rendimiento. alcanzar o superar el ADPCM G.726 de codificación de 32 Kbps, con
alta calidad de voz, al mismo tiempo, se codifica luego de obtener PCM lineal de 16 bits basado en 8 KHz
; muestreo de la señal de voz.
La velocidad de datos comprimidos es de sólo 8 Kbps, con una alta relación de compresión equivalente a 8:1
El retraso del algoritmo es inferior a 16 ms. al códec G.729
El codificador puede lograr una calidad de voz muy alta y un retardo de algoritmo muy bajo,
por lo que se usa ampliamente.
El habla de caracteres La biblioteca es una colección de datos de voz de pronunciación de un solo carácter.
Cada dato es independiente entre sí y no tiene correlación. El paquete de la biblioteca fonética
contiene los 6763 chinos. caracteres en fuentes de primer y segundo nivel estándar nacional, 10
datos fonéticos mandarín estándar de números arábigos y 26 caracteres ingleses
datos El tiempo de pronunciación de cada carácter o carácter chino es 0,65. s, utilizando una frecuencia de muestreo de 8 KHz
, se utiliza el algoritmo de codificación de voz G.729A para comprimir los datos de voz anteriores. La velocidad de datos comprimidos es de 8 Kbps, lo que equivale a una alta velocidad de 8:1. Tasa de compresión. Entre los caracteres chinos, los homófonos representan una proporción considerable. Sin embargo, en la síntesis de voz, no hay diferencia en el procesamiento de los homófonos. Por lo tanto, hay casi 7000 caracteres chinos. p>diferentes pronunciaciones después del procesamiento homófono y el uso del estándar G.729A
para comprimir los datos de voz de los caracteres, el tamaño final del archivo de la biblioteca de voz será
729 950 bytes. que cumple completamente con los requisitos de almacenamiento de datos de este sistema PDA
de lo contrario, la cantidad de datos en la biblioteca de voz es demasiado grande y este sistema PDA no puede aceptarlos
Los pasos específicos para establecer una base de datos de compresión de voz son los siguientes:
◇ Ingrese los números y la pronunciación estándar de los caracteres chinos de uso común de forma independiente en el archivo de datos
como datos básicos, utilice el software cooledit2000
para completar la entrada de voz.
◇ Para los datos de entrada, la longitud de cada cuadro es de 10 ms (80 muestras)
como entrada del algoritmo de codificación.
◇ Codifique los datos de acuerdo con el estándar del algoritmo G.729A.
◇ Convierta los datos codificados en un flujo de bits binario y escríbalos
en el archivo de la biblioteca de voz. La velocidad de datos comprimidos es de 8 Kbps, con
alta compresión equivalente a una velocidad de 8:1.
El flujo del programa para implementar este proceso en lenguaje C se muestra en la Figura 1.
La biblioteca de voces de personajes se establece en la plataforma Windows y Visual
Implementada en el entorno de programación C++, el tamaño final de los datos comprimidos
es 729 950 bytes y el tamaño de los datos de voz de cada carácter es
650 bytes.
2.2 Síntesis de voz
Al recibir un mensaje de búsqueda personal, el programa de síntesis de voz primero obtiene los datos del mensaje de búsqueda de
la ubicación especificada y luego los busca en la biblioteca de voz
La pronunciación de cada carácter chino, número arábigo o carácter inglés se reorganiza en un archivo de datos.
El programa de decodificación decodifica el archivo y genera la síntesis de voz. El proceso se muestra en la Figura 2.
El proceso de síntesis de voz primero determina la posición del carácter actual en la biblioteca de voz. Para 10 números arábigos y 26 caracteres ingleses,
p>
se coloca al principio. de la biblioteca de voz Es más fácil buscar estos caracteres. Los caracteres chinos
se almacenan en 2 bytes y usamos sus códigos de ubicación como caracteres en la biblioteca de voz.
Posicionamiento. índice El número de compresiones de voz después de completar la búsqueda en la biblioteca de voz de caracteres
Archivo de encabezado, variables globales, descripción del prototipo de función
Ingrese el archivo de voz y el nombre del archivo de código comprimido
Inicializar el codificador, incluida la inicialización del estado del filtro
y la inicialización de voz, excitación y otros buffers
Si el archivo de voz está finalizado
Leer 1 cuadro de voz (80 puntos) (A_Law)
Convertir a PCM lineal de 16 bits
Convertir palabra clave de parámetro a código de serie
Transmitir y luego convertir palabra clave
Escribir archivo
Fin
Función principal de codificación Coder_ld8a()
Y
N
Figura 1 Diagrama de flujo para establecer la biblioteca de voz de caracteres
Buscar en la biblioteca de voz y reemplazar la información del texto de paginación
con un archivo de voz comprimido
Inicialización del decodificador
Si el archivo de código finaliza
Lee 1 cuadro de datos y
conviértelo en un flujo de código binario
Función principal de decodificación
Los datos de salida se convierten en la señal A_LAW
Reproducción de voz
Fin
Y
N
Figura 2 Diagrama de flujo de síntesis de voz
47Microcontroladores y sistemas integrados 2002.12
Nuevo dispositivo y nueva tecnología NUEVO PRODUCTO Y TECNOLOGÍA
Datos como decodificación de caracteres La entrada del proceso.
El proceso de decodificación de datos se puede dividir en dos partes: decodificación de parámetros y reconstrucción posterior a la señal.
Primero, se deben extraer los símbolos de los parámetros del. número de datos de entrada
, después de decodificar estos símbolos, se pueden obtener los parámetros del codificador correspondientes a la trama de voz de 10 ms
. Estos parámetros incluyen coeficientes de predicción lineal, vectores de libro de códigos adaptativos y libros de códigos fijos. Los vectores y sus ganancias se utilizan para calcular la señal de voz reconstruida. La señal de voz reconstruida sólo se puede obtener mediante el proceso de posprocesamiento, incluido el filtrado hacia atrás, el filtrado de paso alto y el filtrado de paso alto.
amplificación según el factor de escala y finalmente obtener los datos de voz originales.
El principio del decodificador de caracteres es el siguiente, como se muestra en la Figura 3.
>2.3 Arquitectura del sistema PDA
La arquitectura de hardware del sistema PDA se muestra en la Figura 4.
Procesamiento integrado en el sistema PDA El procesador EP7211 realiza el procesamiento de datos
, el chip decodificador de paginación recibe la información de paginación y la decodifica, la pantalla LCD
proporciona una visualización de salida de datos y la pantalla táctil proporciona la interfaz de entrada del usuario.
Se utiliza Flash para almacenar aplicaciones y datos, y SRAM se utiliza para almacenar programas.
Operación
Proporciona espacio de memoria y el circuito de alimentación proporciona el voltaje de funcionamiento requerido para el procesador integrado y los dispositivos periféricos
.
El procesador integrado EP7211 es Cirrus Logic está especialmente diseñado para
aplicaciones integradas de bajo costo y consumo de energía ultrabajo, incluido
núcleo de procesador ARM7TDMI e interfaces periféricas ricas
El puerto. tiene interfaz de audio CODEC, interfaz A/D serial SPI, interfaz LCD monocromática, interfaz DRAM, interfaz de infrarrojos, 2 interfaces PWM, reloj en tiempo real
RTC e interfaz de detección de energía. El circuito central del EP7211
funciona a 2,5 V, mientras que el circuito periférico funciona a 3,3 V; el circuito central se puede modificar según condiciones específicas
p>El reloj se programa dinámicamente;
y puede funcionar
a 18, 36, 49 y 74MHz
Además, EP7211
También hay 3 básicos. Modos de alimentación:
funcionamiento normal,
inactivo y en espera
En espera
modo de espera, el reloj principal
se apaga y toda la
CPU y los periféricos relacionados
(excepto las interrupciones y RTC)
También se apagan, pero se pueden reactivar. mediante
interrupciones o botones.
Software del sistema La plataforma de desarrollo adopta la plataforma XGW desarrollada independientemente por nosotros
, que está especialmente diseñada para el desarrollo de sistemas integrados. sistemas de aplicaciones.
La plataforma de desarrollo XGW adopta un mecanismo basado en mensajes y está desarrollada en lenguaje C.
p>
Tiene funciones potentes, diseño modular, gran escalabilidad, y actualizaciones sencillas del producto.
El marco general se muestra en la Figura 5.
La Figura 5 refleja completamente la arquitectura de la plataforma de desarrollo de XGW, incluyendo
impulsado por mensajes de eventos. mecanismo, gestión de memoria, visualización de caracteres y gráficos
salida, biblioteca de componentes gráficos, etc. Cuadros de edición, columnas en la biblioteca de componentes gráficos
marcos de tabla, botones, etc. proporcionan aplicaciones del sistema para el desarrollo de aplicaciones de usuario
API de interfaz de programación, sin embargo, la plataforma XGW no responde a las interrupciones del hardware del sistema
No existe una entrada y salida unificadas, lo que requiere que los desarrolladores lo manejen individualmente. Los mensajes de la plataforma de desarrollo XGW se dividen en tres categorías: mensajes del mouse, mensajes del disco clave y mensajes del temporizador.
2.4 Rutina del servicio de interrupción de voz
La grabación y reproducción de voz periférica proporcionada por el propio procesador integrado EP7211
El chip Codec (codificador/decodificador) puede realizar grabación de voz y
Código adaptativo
Decodificación de vectores
Ganar decodificación
Código fijo
Decodificación vectorial
Incentivos estructurales
Aumento del código MA
Predicción de ganancias
p>11
, GBGA
22
,GBGA
)(nv
Intervalo retraso
p
g^
^
c
g^
11
,CS
22
,CS
)(zP
)(nc
Número de codificación
Síntesis LP
Filtro de filtrado
)(nu
Post filtro
)(^ns
Calibración superior de Qualpass
) (nfs
Valor de interpolación de decodificación LSP)(^zALSF
Número de secuencia LSP
3210
,,,LLLL
Por cuadro
Por subtrama
210
,, PPP
Figura 3 Diagrama de bloques principal de decodificación de caracteres
Antena
LCD
Pantalla táctil
Reloj, reset
bit, despertar radiofrecuencia
Entrada
Administración de energía FlashSRAM
Puerto serie
Puerto de infrarrojos
Solución de paginación
Chip de código integrado
p>
Procesador
EP7211
Equipo de radio
Circuito de grabación y reproducción de voz
Figura 4 Estructura de hardware
482002.12
Nuevo dispositivo y nueva tecnología NUEVO PRODUCTO Y TECNOLOGÍA
Función de reproducción Este módulo proporciona 2 datos independientes de 16 bytes de longitud
Transmisión y recepción. buffer (FIFO), que está en modo full-duplex, y la velocidad de transmisión y recepción de datos es de 64 kbps. El chip en sí proporciona un reloj de trabajo, pulsos de sincronización y funciones de conversión de datos en serie/paralelo y en paralelo/en serie. elementos configurando los registros de control correspondientes del EP7211
Siempre que el buffer de transmisión y recepción de datos esté medio lento o medio vacío (8
bytes), el propio chip generará una señal de interrupción para procesamiento externo
La tasa de interrupción del chip calculada teóricamente es de 1 ms/tiempo.
La tarea principal de la rutina del servicio de interrupción de reproducción de voz es cuando
a. Se produce una interrupción de voz y todavía hay datos que deben reproducirse, escribe en el búfer de envío de datos de voz FIFO. Ingrese los datos especificados y el resto del trabajo lo completa el chip Codec. El pseudocódigo de la rutina de servicio de interrupción ISR es el siguiente (debido a que el código de implementación específico no es universal,
Descrito en pseudocódigo):
void IRQ_Codec_Handler(void)
{
mientras (detecta el registro de estado del sistema y descubre el búfer de envío de datos del chip de voz
El búfer FIFO no está lleno)
{
if (la duración de los datos de voz que se han reproducido = la necesidad dada de reproducir
La duración de los datos de voz colocados) //Fin
{
Deshabilitar la interrupción del búfer de envío de datos;
Restablecer todas las variables globales relacionadas;
p>
El programa regresa;
}
}
else
{
Al chip de voz Envía el búfer de datos FIFO para escribir datos predeterminados
Llamada al sistema
Apertura general
Enviar control de salida de caracteres, salida de gráficos
Usuario de gestión de memoria Personalizado
Controles definidos
Mensaje de evento impulsado
Interrupción de hardware
Ejecución
ISR
Retorno de interrupción
Interrupción de hardware p>
Ejecución
ISR
Retorno de interrupción
Aplicación a nivel de usuario
Figura 5 Arquitectura de software de la plataforma XGW p>
0XFF;
}
}
}3 resultados de pruebas y análisis
Dado que consideramos completamente el gran computacional carga del algoritmo de síntesis de voz
y los requisitos en tiempo real del sistema durante la etapa de diseño, lo implementamos
También se han tomado algunas medidas durante el proceso, la más destacada algunos son: usar
lenguaje ensamblador ARM para implementar códigos de funciones clave; aumentar la frecuencia de trabajo del procesador EP7211 durante la síntesis de voz
(la frecuencia de funcionamiento normal del procesador es 18 MHz) ; Para algunos cálculos de funciones trigonométricas de uso común, se utilizan métodos de búsqueda de tablas para acelerar la ejecución del programa. En
>En la prueba del prototipo de PDA, el tiempo de síntesis de un solo carácter fue de aproximadamente 650 ms,
<. p>que básicamente puede satisfacer las necesidades de aplicaciones prácticas. Después de que se procesó la biblioteca de voz de datos, ocupó 729 560 bytes y también puede satisfacer los requisitos de almacenamiento de este sistema PDA.Cuando el sistema PDA recibe un mensaje de localización personal, en la biblioteca de voz
Con soporte, se iniciará inmediatamente el algoritmo de síntesis de voz y la síntesis de voz de caracteres
los caracteres se realizarán uno por uno. Cuando se complete la síntesis de voz del primer carácter, el algoritmo de síntesis de voz se iniciará inmediatamente
.
La rutina del servicio de interrupción de tono realiza la reproducción de voz. Cuando la información de localización personal recibida de esta manera se decodifica carácter por carácter en primer plano, su reproducción de voz de fondo también está en progreso. Según las pruebas reales, los parámetros básicamente cumplen
. los requisitos en tiempo real del sistema.
Desde cierta perspectiva, el tiempo de síntesis de voz de 650 ms para un solo carácter
básicamente puede satisfacer las necesidades reales de la aplicación, pero. Todavía esperamos reducir aún más este valor. Esto se debe a que nuestro uso de procesadores ARM aún se encuentra en la etapa de investigación. El propio ARM proporciona un conjunto de instrucciones The Thumb de 16 bits y un conjunto de instrucciones ARM de 32 bits. y los dos muestran grandes diferencias en algunos aspectos
En términos generales, la longitud del código Thumb es
p>
65% de la longitud del código ARM y la eficiencia de ejecución es. un 60% más alto que este último
Pero en algunos aspectos, el conjunto de instrucciones ARM de 32 bits también se mostrará
Exhibiendo sus potentes funciones superiores al conjunto de instrucciones Thumb de 16 bits; al mismo tiempo
El sistema del procesador admite el modo de programación híbrido del conjunto de instrucciones ARM y del conjunto de instrucciones Thumb.
Con una comprensión profunda de las diferencias y las respectivas ventajas entre los dos, combinados. Con la arquitectura de hardware de este sistema, el uso de modelos de programación híbridos con conjuntos de instrucciones efectivos mejorará aún más la eficiencia de ejecución del programa, mejorando así aún más el rendimiento en tiempo real.
Referencias.
1Manual de datos de Cirrus Logic Company.
2Ma Zhongmei. Estructura del procesador integrado ARM y fundamento de la aplicación.
Beijing: Beijing University of Aeronautics and Astronautics Press, 2002
3Gibson Jerry D, et al. Principio y estándar de compresión digital multimedia
Traducido por Li Yuhui y otros: Electronic Industry Press, 2000
.