Está en la página 1de 13

Pontificia Universidad Javeriana de Bogotá

Facultad de Ingenierı́a Electrónica

Vocoder digital con sı́ntesis


substractiva y entrada moduladora
por interfaz digital.

Anteproyecto de grado presentado por Mario Andrés Martı́nez C. & Juan


Sebastián Castrillón A.
para obtener el grado de Ingenieros electrónicos
Dirigido por ing. Johana Flórez & ing. Hernán Santos

2019

Departamento de Ingenierı́a Electrónica


Índice general

1. Antecedentes 1

2. Justificación 3

3. Objetivos 4

4. Descripción 5

5. Metodologı́a y actividades 9

0
1. Antecedentes

1.1 Vocoders
Los vocoders o codificadores de voz son sistemas de análisis y sı́ntesis de audio con la capacidad
de captar y reproducir señales de voz. Estos producen como salida una multiplexación entre las
entradas que el mismo recibe, las cuales son el formante caracterı́stico extraı́do de la voz humana
y una señal externa llamada modulador [1], como se puede observar en la figura 1.

Figura 1: Diagrama de bloques de un vocoder.

Fuente: Creación propia.

El uso de los vocoders inicia como codificadores y decodificadores en las radiocomunicacio-


nes durante los años 30, ya que era necesario digitalizar, cifrar y transmitir los datos de la voz
codificada en anchos de banda bastante estrechos (4 kHz) para poder sostener comunicaciones
clasificadas, especialmente implementados para usos militares. Luego de esto, en la década de los
70 los vocoders tomaron auge en el entorno musical, tanto ası́ que puede llegar a concedérsele el
tı́tulo de instrumento parlante, los inicios de los vocoders en la industria musical son producidos
en la llamada música electrónica experimental[2].
Los primeros vocoders utilizados en telecomunicaciones captaban los formantes fundamentales
de la voz ingresada para codificarla y enviarla al receptor. Luego, el receptor analizaba los datos
e intentaba reproducir un resultado similar a la señal original de la voz, siendo la señal resultante
inteligible a muy baja tasa de bits. Después de esto, otros vocoders no implementados en el área
de la música fueron basados en un sistema de predicción lineal desde finales de la década de los
años 70. En ellos era utilizado un filtro digital IIR (en inglés, Infinite Impulse Response) con solo

1
1. Antecedentes 2

polos encargado de estimar el espectro envolvente de la señal ingresada, luego pasando por un
decodificador encargado de filtrar los distintos tipos de ruido presentes y reasignar el espectro
original de la señal producida por la voz. Por otra parte, en la misma década, se tenı́a el uso de
los vocoders en el ámbito musical también era utilizado un dispositivo de diez bandas cuya señal
era producida en un sintetizador modular que tenı́a por entrada la voz humana modulada por un
micrófono[2].

1.2 MIDI
MIDI(en inglés, Musical Instrument Data Input) es un protocolo de tecnologı́a musical estándar
de la industria que conecta productos de distintas compañı́as, incluidos instrumentos musicales di-
gitales, computadoras y teléfonos inteligentes. Este protocolo es comúnmente empleado por músi-
cos, productores, educadores, artistas y aficionados para crear, interpretar, aprender y compartir
música.
El sistema MIDI transmite un archivo que no contiene datos de audio muestreado, por el
contrario es una serie de instrucciones que el sintetizador u otro generador de audio utiliza para
reproducir el sonido en tiempo real. Estas instrucciones son mensajes MIDI que indican al instru-
mento los sonidos a utilizar, las notas que hay que reproducir, la intensidad de cada una de ellas,
etc. Del mismo modo, el protocolo empleado por el sistema especifica el hardware de interconección
que consiste en un grupo estandarizado de conectores denominados In, Out y Thru, además de
soportar la comunicación serial por medio de un puerto USB.

1.3 Implementaciones recientes


Existen implementaciones como la realizada y documentada en el texto FPGA Digital Mu-
sic Synthesizer [3], donde los autores desarrollan un sintetizador musical digital capaz de realizar
sı́ntesis sustractiva con múltiples etapas de efectos de procesamiento de audio. Lo anterior, imple-
mentado en una Zedboard 1 , un dispositivo multi-funcional que trae un microprocesador de doble
núcleo ARM y una FPGA, utilizando como entrada del sistema un MIDI USB estándar conectado
a un computador con sistema operativo Windows. El computador actúa como mediador de los
datos de entrada enviados a la Zedboard, y también proporciona una interfaz gráfica al usuario
para tener control de toda la operación del sistema.
Otra implementación reciente se encuentra en el texto FPGA Speech Vocoder [4], en el que se
diseña e implementa un vocoder con funcionamiento en tiempo real en una Cyclone V FPGA. Para
ello, se utilizan filtros IIR con la finalidad de procesar la voz y ser multiplexada con una onda seno
con frecuencia variable según la banda en la que se encuentra, además de permitir la visualización
de los datos en una pantalla VGA.

1
Placa de desarrollo que contiene varias interfaces necesarias para diseño, permite crear rápidamente prototipos.
2. Justificación

Este proyecto se desarrolla con el fin de implementar una alternativa de un vocoder dirigido
al uso en aplicaciones musicales, este tendrá la capacidad de controlar y modificar las notas de la
señal moduladora, señal basada en la salida de un dispositivo MIDI. La inclusión del dispositivo
brindará al usuario la capacidad de integrar al vocoder una gran cantidad de dispositivos de este
tipo y poner a su disposición una alta variedad de sonidos como entradas del banco de filtros,
lo cual beneficiará al usuario ampliando sus opciones en cuanto a la creación e interpretación
musical, brindando ası́ versatilidad y accesibilidad económica. Aparte de esto, se desea generar
una distribución de los filtros no convencional en la que estén divididos según las frecuencias de
las notas musicales y sus armónicos, y no equitativamente sobre el rango de frecuencias como lo
realizan los vocoders convencionales en el ámbito de la música.
Los sintetizadores actuales en el medio musical se han expandido a una gran cantidad de géneros
en la industria[1]. En la última década han avanzado de una manera notable, mejorando en gran
medida la capacidad de transformar y compactar la información de la señal de voz a la entrada de
audio. No obstante, poco se ha profundizado en la integración de estos sistemas con el protocolo
MIDI que ha estandarizado la comunicación entre los dispositivos digitales musicales.
Además, se va a enfatizar en la importancia que tiene el parámetro de tiempo real en la salida
del sistema, siendo comparado con el habla como señal ingresada. Lo mencionado previamente, será
diseñado e implementado mediante una herramienta de procesamiento digital apta para señales
cuasi-periódicas como las de la voz humana, extrayendo su formante y multiplexándolo con señales
moduladoras externas. A la vez recibe los datos del protocolo sin la necesidad de un procesador
externo al sistema propuesto, lo cual aporta una caracterı́stica de portabilidad para el usuario.
Para obtener una correcta adquisición de datos sobre la voz, el sistema deberá tener un ancho
de banda de al menos 20 kHz debido a los rangos de audición de la voz humana calculados entre
los 20 Hz y 20 kHz [5]. Además, dado que el rango dinámico del oı́do es de 130 dB [6] se hacen
necesarios al menos 16 bits de cuantificación y se busca una frecuencia mı́nima de muestreo de
44.100 Hz [7], estos parámetros hacen parte del estándar FLAC (en inglés, Free Lossless Audio
Codec). Este proyecto busca distribuir sobre el ancho de banda del sistema al menos 32 filtros
digitales de manera no uniforme como se puede ver en la implementación descrita en el texto
FPGA Speech Vocoder [4], lo cual es un cálculo aproximado de 6 filtros por cada octava en la
escala temperada [8], y cuya ganancia pueda ser modificado por los mensajes MIDI.

3
3. Objetivos

3.1 Objetivo general:


Diseñar e implementar mediante una herramienta de procesamiento digital de señales un siste-
ma de codificación de voz o vocoder, teniendo como señal moduladora la salida de un dispositivo
MIDI, enfocado hacia el uso en aplicaciones musicales.

3.2 Objetivos especı́ficos:


Escoger el sistema de procesamiento de señales digitales que permita implementar los reque-
rimientos propuestos.

Determinar las caracterı́sticas de las señales de entrada y procesarlas digitalmente.

Diseñar e implementar los filtros presentes en el vocoder y su distribución, ası́ como diseñar
e implementar el generador de ondas, ambos cumpliendo las especificaciones del vocoder
propuesto.

Integrar las elementos elaborados como partes esenciales del vocoder, evaluando la latencia
presente a la salida.

Realizar las pruebas de desempeño necesarias para verificar el correcto funcionamiento del
cada una de las artes que componen el vocoder, en conjunto con la respectiva documentación.

3.3 Público objetivo y usuarios del proyecto:


El presente proyecto beneficiará a cualquier artista, productor o interprete, ya sea profesional
o aficionado, quien busca otorgar efectos sobre la voz como la de darle un sonido ”robótico”. Ya
sea para interpretaciónes en vivo o para la grabaciónes.

4
4. Descripción

4.1 Sistema de procesamiento de señales digitales.


Dentro de los procesadores de señales digitales a evaluar en el diseño del sistema sintetizador
de voz, es posible encontrar las tecnologı́as FPGA (en inglés, Field-Programmable Gate Array),
DSP (en inglés, Digital Signal Processor ) ó SoC (en inglés, System on a Chip), tres opciones que
permiten realizar procesamientos de señales cuasi-periódicas[5]. Estos sistemas tienen caracterı́sti-
cas con la capacidad de optimizar el procesamiento digital de seales, las cuales serán evaluadas a
continuación en aspectos relevantes al correcto funcionamiento propuesto para el vocoder:
El DSP es un sistema microprocesador que dispone de un conjunto de instrucciones diseadas
para procesar eficientemente señales análogas y discretas. Al igual que un procesador, éste dispo-
sitivo tiene la capacidad de ejecutar instrucciones genéricas de forma secuencial, lo que implica
que se necesita de un conjunto de instrucciones para la ejecución de un proceso especı́fico. Del
mismo modo, este dispositivo tiene la capacidad de recibir interrupciones que permiten priorizar
las tareas [9].
El FPGA es un dispositivo reprogramable y configurable por un lenguaje descriptivo, el cual
tiene la posibilidad de realizar cambios en las celdas lógicas puestas a la disposición del usuario.
Trabaja usualmente con el lenguaje VHDL, este requiere de un proceso de diseño inicial, un
proceso de implementación, y una etapa de verificación y ajuste final del circuito digital. Además,
este dispositivo es capaz de ejecutar procesos de forma paralela [9].
El SoC es un sistema electrónico con la capacidad de integrar varios componentes que hacen
parte de un computador u otros sistemas electrónicos. Los sistemas SoC-FPGA integran la arqui-
tectura de un procesador y de un FPGA en un solo dispositivo, incluyendo una gran cantidad de
periféricos, una memoria dentro del chip, un arreglo lógico de tipo FPGA y transceptores de alta
velocidad [10].

4.2 Caracterización de entradas y codec.


La entrada principal del vocoder a implementar es la voz humana como se puede identificar
en la figura 2. En general, la voz humana tiene dos categoras relativo a las tonalidades, las voces
masculinas y femeninas, de las cuales se desprenden distintas clases según su grado de elevación.

5
4. Descripción 6

Por un lado, en las voces femeninas se pueden encontrar encontrar tres tipologı́as: soprano, mez-
zosoprano y contralto. Organizados en un estándar que va desde la más aguda a la más grave
correspondientemente; las voces soprano tienen la caracterı́stica de oscilar ente las frecuencias más
altas de la voz, entre los 250 y los 1500 Hz. Las mezzosoprano oscilan entre los 220 y los 880 Hz,
y las voces contra alto oscilan entre los 200 y 780 Hz [5]. Por otra parte, las voces masculinas se
pueden clasificar en tres tipos: tenor, barı́tono y bajo, organizadas de igual manera de aguda a
grave correspondientemente. Las voces tenor tienen la caracterı́stica de oscilar ente las frecuencias
más altas de la voz masculina, entre los 130 y los 520 Hz; las voces barı́tono oscilan entre los 100
y los 390 Hz y las voces bajo, las cuales oscilan entre los 80 y 330 Hz, siendo las voces más bajas,
como su nombre lo indica, en la escala humana [5].
Dentro de esto, se pueden encontrar fonemas fuera de estos rangos, como lo es el caso de la
letra /s/, la cual puede llegar a frecuencias de hasta 14 kHz en algunos casos del habla. Por lo
tanto, nuestra propuesta incluye esta componente de frecuencia en su rango de operación (20 Hz
a 20 kHz), dado que se emplea el rando fel modelo de audición humana [5].

Figura 2: Diagrama de bloques del sistema.

Fuente: Creación propia.

Para realizar el procesamiento de seales de una onda de voz en un sistema digital es totalmente
necesario contar con una etapa de conversión a la entrada y salida del sistema, este proceso hace
parte del codec presente en la figura 2 el cual está compuesto por un ADC (en inglés, Analog
to Digital Conversor ) y un DAC (en inglés, Digital to Analog Conversor ). En los procesos de
conversión podemos ver dos de los aspectos con mayor importancia en la calidad de la señal como
lo son la cuantificación y el muestreo, la cuantificación nos expresa la reduccin de valores continuos
4. Descripción 7

de la señal analgica a los valores discretos de la señal digital, medida en niveles dependientes de los
bits del sistema; y en segunda instancia la frecuencia de muestreo, la cual nos expresa la cantidad
de datos o muestras tomadas en un segundo, siendo esta dependiente de la frecuencia que se desea
digitalizar en una tasa aproximada de frecuencia de muestreo mayor que dos veces la frecuencia
de entrada (Teorema Nyquist-Shannon), para evitar sobrelapar la información en frecuencia de las
muestras y recuperar la información de la señal de entrada, calculando entonces la frecuencia de
muestreo como mayor a 40 kHz, ya que es el doble de la frecuencia máxima de entrada. Adems para
evitar este efecto de sobrelapamiento se contará con un filtro anti-aliasing que buscará atenuar los
formantes del sonido externos al ancho de banda de operacin del sistema.
En cuanto a la señal MIDI, seleccionada por su caracterı́stica de multiplicidad de compatibi-
lidad de dispositivos, la amplia oferta de bancos de efectos y su factibilidad ante la obtención de
datos, lo primero en analizar es una etapa de atención a eventos, donde se obtendrán los datos de
presión a las notas, la tonalidad de estas (frecuencia) y la velocidad con la que son presionadas,
concepto que afecta la intención musical e indica la intensidad con la que se replicará la nota.
Estos mensajes son enviados de manera serial por medio de un puerto USB y/o puerto MIDI, por
lo que el sistema contará con un dispositivo UART(en inglés, Universal Asynchronous Receiver-
Transmitter )/USART(en inglés, Universal Synchronous and Asynchronous Receiver-Transmitter )
encargado de adquirir los datos enviados de forma serial. Estos datos son recibidos por el generador
de ondas y junto a otros parámetros definidos por el usuario como el tipo de onda y la envolvente,
se obtendrá la señal a multiplexar con la voz. Dado las caracterı́sticas del MIDI 1.0 el vocoder
puede tener una textura musical (número de voces) monofónica o polifónica, por lo que puede
recibir múltiples notas, dando la posibilidad de ingresar diferentes acordes.

4.3 Diseño de filtros y generador de ondas.


Una vez determinado el dispositivo de procesamiento digital de señales en base a las especifica-
ciones que se quieren alcanzar en el sistema y detalladas las seales de entrada junto con su proceso
de digitalización, se inicia el diseo y selección del tipo de filtro a utilizar en el vocoder como se ve
en la figura 2, teniendo entre las opciones filtros IIR (en inglés, Infinite Impulse Response) y FIR
(en inglés, Finite Impulse Response)[11].
La diferencia entre la implementación de IIR y FIR, se refleja en las ecuaciones diferenciales
entre uno y otro, requiriendo que los filtros IIR utilicen muestras de las salidas pasadas como
entrada (auto-regresivo), lo que hace que el filtro sea una función recursiva. Adicionalmente en la
práctica, la diferencia entre los filtros esta en su desempeño, los filtros IIR tienen la ventaja de que
para una caı́da (roll off) similar a la de un FIR, el filtro puede ser de menor orden. Esto significa que
menos recursos de procesamiento son necesarios para conseguir un resultado similar, en contraste
a una implementación de un filtro FIR, haciendo que el IIR sea ms veloz computacionalmente.
Sin embargo, los filtros IIR tienen una fase no lineal y problemas de estabilidad asociado a la
4. Descripción 8

cuantización de los coeficientes del filtro [11].


El siguiente proceso a disear es el generador de ondas presente en la figura 2, que actuará como
la seal portadora del vocoder, la frecuencia de estas ondas viene dada por la señal de entrada
tipo MIDI. El tipo de ondas que tendrá el generador de nuestro sistema serán ondas de tipo
seno, cuadradas, triangulares y de ”diente de sierra”. Ondas más complejas se podrán obtener
mediante la combinación lineal de las anteriormente mencionadas. Para generar las señales es
necesario emplear series de Fourier. La frecuencia está dispuesta por la nota presionada, la cual
hará necesario desarrollar un proceso matemático utilizando la escala temperada occidental de 12
semitonos dentro de una octava [8], cuya relación de frecuencias de un semitono está dada por la
raı́z duodécima de dos.

4.4 Latencia y conversión a la salida.


Tras los procesos anteriormente presentados, estando ya en el proceso de multiplexación del
sistema, se hace necesario realizar la conversión del medio digital a analógico. Este proceso como se
puede observar en la figura 2, es realizado por el ya explicado codec, en su componente DAC y luego
filtrando esta misma salida con un pasa bajas para eliminar las componentes de alta frecuencia
que no hacen parte de la señal deseada.
Una caracterı́stica importante de la salida del vocoder, ya que se desea tener el aspecto de real
time, es tener una baja latencia. Por lo que se plantea que nuestro vocoder no debe superar una
latencia de sistema de 25 milisegundos [12], la cual es la latencia promedio que puede detectar
una persona. Teniendo en cuenta que cada uno de los codec incluidos en el vocoder puede generar
latencia en 0,5 milisegundos [12].

4.5 Pruebas y documentación del sistema.


Una vez se ha implementando todo el sistema con las especificaciones anteriormente men-
cionadas se realizarán diferentes pruebas para comprobar el correcto funcionamiento del sistema
diseñado y detectar posibles errores en el mismo, dichas pruebas consistirán en verificar el funcio-
namiento del banco de filtros, visualizar la forma de onda a la salida, revisar el resultado de la
multiplexación de la voz con las diferentes seales que el sistema puede generar, además de realizar
para cada seal las pruebas con varios mensajes MIDI. Para evaluar el funcionamiento del sistema y
la inteligibilidad de la salida, se hará uso de un método de calificaición subjetivo llamado MOS(en
inglés, Mean Opinion Score) el cual consiste en calcular la media aritmética de las diferentes cali-
ficaciones que van desde 1 a 5, siendo 5 la mejor calificacién posible, finalmente se realizarará un
manual sobre todas las funcionalidades del sistema y los parámetros que el usuario podrá modificar.
5. Metodologı́a y actividades

5.1 Metodologı́a:
Para el desarrollo del trabajo de grado se utilizará la metodologı́a de cascada, la cual se puede
observar en la figura 3. En ella se describen las fases necesarias para el correcto y ordenado
desarrollo del proyecto.

Figura 3: Diagrama metodologı́a de cascada.

Fuente: Creación propia.

Primera fase. Definición de requerimientos: En esta fase se analizarán las necesidades técnicas
del sistema y plantearán los parámetros para tener en cuenta en su diseño.
Segunda fase. Análisis y diseño del sistema: En esta fase se llevará a cabo el correcto plan-
teamiento del diseño según lo evaluado en el estado del arte y los parámetros establecidos en la
fase anterior.
Tercera fase. Implementación y pruebas de unidades: En esta fase se implementarán las
unidades del sistema por separado y luego se harán pruebas respectivas sobre cada una.

9
5. Metodologı́a y actividades 10

Cuarta fase. Integración y prueba del sistema: En esta fase se integran las unidades imple-
mentadas en la fase anterior y se hacen pruebas sobre el funcionamiento total del sistema.
Quinta fase. Documentación y operación: En esta fase se documentan las pruebas de correcto
funcionamiento del sistema funcional y se crea el manual de usuario para indicar su correcta
operación.

5.2 Actividades y cronograma:

Número Actividad
1.1 Investigación sobres los diferentes sistemas de procesamiento digital de señales
1.2 Implementación del tipo de filtro digital seleccionado
1.3 Parámetros extra a establecer del vocoder
1.4 Documentación
2.1 Generador de funciones
2.2 Adaptación de la entrada MIDI
2.3 Implementación del banco de filtros en el sistema
2.4 Filtrado de la voz en el sistema
2.5 Multiplexación de la señal moduladora y la portadora
2.6 Documentación
3.1 Pruebas del vocoder
3.2 Adquisición de datos y manual
3.3 Documentación
4.1 Documento final
4.2 Presentación

Cuadro 1: Actividades.
Fuente: Creación propia.

Figura 4: Cronograma del proyecto.

Fuente: Creación propia, mediante excel por diagramas de Grantt.


5. Metodologı́a y actividades 11

5.3 Uso de estándares de ingenierı́a & responsabilidad ética y ambiental:


Este proyecto de grado se implementará utilizando componentes que cumplan con las directivas
RoHs (en inglés, Restriction of Hazardous Suubstances) y WEEE (en inglés, Waste Electrical and
Electronic Equipment), por lo que se asegurará que los componentes estén libres de plomo, mercurio
y cadmio, además todo residuo del proyecto será reutilizado o reciclado según el caso.

5.4 Presupuesto y valor:

Figura 5: Presupuestos y valor del proyecto.

Fuente: Creación propia.

5.5 Distribución del trabajo:


Juan Sebastián: Adecuación del MIDI, modulación del audio y documentación.
Mario Andrés: Diseño de filtros, implementación del generador de funciones y multiplexación
de las señales.

También podría gustarte