Red de conocimiento informático - Aprendizaje de código fuente - Chip de conversión de texto a voz (para microcontrolador)

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ÍA

Predicció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)

, convierta la voz A_law en datos PCM de 16 bits mediante una conversión simple

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

Ejecución

ISR

Retorno de interrupción

Aplicación a nivel de usuario

Figura 5 Arquitectura de software de la plataforma XGW

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

.