Logo pastbytes
Fotos
Información
Instalación
Programación
Conexiones
Aplicaciones
Enlaces
Contacto
Foro
Fotos
Información
Instalación
Programación
Conexiones
Aplicaciones
Enlaces
Contacto
Foro

APLICACIONES > TAV - Sintetizador de voz multiplataforma
Introducción:

El proyecto
TAV (Texto a voz) se originó en el año 2011 como una conversión del proyecto microSint a la Commodore 64, por entonces en la versión HR2, y continuó como un experimento multiplataforma que concluyó con versiones para Sinclair ZX81, Sinclair Spectrum (48K y 128K), Timex Sinclair 2068 y MSX1.
El código del programa es bastante portable, manteniendo una estructura similar tanto en 6502 como en Z80, pero la versión para Commodore 64 es la más precisa, dado que es mi única experiencia en programación en ensamblador de Z80 y que las máquinas con Z80 no solían disponer del hard de temporización que sí tiene la Commodore 64.
De la misma manera que el proyecto con PIC, el sintetizador funciona en base a fonemas, generados mediante tablas de ondas almacenadas en el programa, algoritmos, o una combinación de ambos métodos. El sonido emitido resultante es audio digitalizado de 4 bits, con una frecuencia de muestreo que varía según la plataforma y el método de generación, pero que está alrededor de los 8KHz.

Descargas (programas y manuales)

Estado del proyecto (27-Dic-2011):

Commodore 64
TAV64 versión 1.0: Emite el sonido usando el SID6581/8580. Es la única versión estable.

Sinclair ZX81
TAV81 beta 5: Emite el sonido usando PWM por el TV (requiere expansión a 16K)
TAV81 Zon X beta 5: Emite el sonido por el PSG AY-3-8912 de la expansión Zon X (requiere expansión a 16K)
Hay que hacer pruebas en la máquina real. Por el momento no dispongo de expansión a 16K ni interfaz Zon X.

Sinclair Spectrum 48K
TAVZX beta 4: Emite el sonido usando PWM por el beeper y salida MIC
Hay que reubicar el programa para que permita usar UDG.

Sinclair Spectrum 128K
TAVZX beta 4: Emite el sonido por el PSG AY-3-8912
Hay que reubicar el programa para que permita usar UDG.

Timex Sinclair 2068
TAV2068 beta 4: Emite el sonido por el PSG AY-3-8912
Esta versión es casi final.

MSX1
TAVMSX beta 4: Emite el sonido por el PSG AY-3-8910
Falta hacer más pruebas antes de pasar a la versión 1.0

Modo de uso del programa:

El sintetizador está diseñado para usarse desde el BASIC, en las versiones para computadoras Sinclair, se debe cargar el texto a hablar en la variable Z$ y luego llamar al sintetizador con la orden USR correspondiente a la versión del programa. En la versión para C64, se debe usar la variable ZZ$ y llamar al programa con la orden SYS, mientras que en la versión MSX se utiliza la misma orden USR para enviar el texto a hablar en la propia llamada.
El texto que se envía al sintetizador debe tener un formato determinado, estando representado cada sonido por una combinación de letras y símbolos, a la cual llamaremos comando. A continuación tenemos una tabla de los comandos permitidos para los fonemas. En la columna COMANDO se ve el texto que debe enviarse para emitir el fonema correspondiente.

COMANDO
FONEMA DESCRIPCION
A a

E
e

I
i

O
o
U
u

A+ á
Vocal acentuada
E+
é
Vocal acentuada
I+
í
Vocal acentuada
O+
ó Vocal acentuada
U+
ú
Vocal acentuada
A- a.
Ultima sílaba de la frase
E-
e.
Ultima sílaba de la frase
I-
i.
Ultima sílaba de la frase
O-
o.
Ultima sílaba de la frase
U-
u.
Ultima sílaba de la frase
B
b

CH
ch

D
d

F
f

G
g/gu
lueGo / áGuila / Gato / GUitarra
J
j
Juego / Gente
K
k
L
l

M
m

N
n

P
p

R
rr
alaRRma / peRRo / RRoca / RRaíz
R2
r
caRa / aRena
S
s

T
t

SH
sh
LLamada / faLLa / aYer
' (apóstrofe)
Pausa
Espacio auxiliar (dentro de una palabra): 32 milisegundos
  (espacio)
Pausa Espacio normal entre palabras: 50 milisegundos
, (coma)
Pausa Espacio de 256 milisegundos (aprox. 1/4 de segundo)
;
Pausa Espacio de 400 milisegundos (aprox. 1/2 segundo)
. (punto)
Pausa Espacio de 1 segundo

Nota: En la versión del programa para ZX81 se cambió el comando apóstrofe por los dos puntos (:), ya que no existe apóstrofe en el conjunto de caracteres de la máquina.

Existen comandos extendidos que emiten sonidos que pueden usarse para indicaciones y alarmas en los programas:

COMANDO
DESCRIPCION
/0 Reproduce un tono (beep 1) con volumen fijo
/1 Reproduce un tono (beep 2) con volumen descendente
/2 Reproduce un sonido de alerta o error

El sintetizador dispone de dos tonos de voz que se pueden combinar en una misma frase, el tono se puede cambiar con los siguientes comandos:

COMANDO
DESCRIPCION
< Cambia la voz al tono menor para el texto que sigue
> Cambia la voz al tono mayor (por defecto) para el texto que sigue


Enviar consultas o sugerencias a info@pastbytes.com


© 2006-2017 Jorge Castillo - Todos los derechos reservados
Las marcas, productos y logos que aparecen en este sitio pertenecen a sus respectivos propietarios