Sintetizador de voz y generador de sonido

Proyectos de hardware con sus esquemáticos y si llevan software en fuente

Moderadores: cacharreo, Fundadores

Reglas del Foro
Aquí solo tienen cabida proyectos de hardware que incluyan siempre al menos sus esquemáticos para poder reproducirlos si llevan componentes electrónicos, y si es posible los ficheros del programa en que se hacen, los diseños de las placas, los gerber, etc. Si llevan algún tipo de software asociado debe estar diponible el código fuente

Para los que no cumplen estas condiciones se debe postear en el foro de proyectos generales.
pastbytes
Le gustan las llamas
Le gustan las llamas
Mensajes: 95
Registrado: 14 May 2016, 09:12
Ubicación: Patagonia Argentina
Been thanked: 48 times
Contactar:

Re: Sintetizador de voz y generador de sonido

Mensaje por pastbytes »

dandare escribió:
pastbytes escribió: Por curiosidad, para que necesitas el codigo fuente?
No lo necesito para nada :D. Prefiero los proyectos libres que permiten difundir el conocimiento y construir sobre ellos o adaptarlos si es necesario. Hay muchas fórmulas para esto, CC, GPL, ShareAlike, Dominio público....

A mi un proyecto "caja negra" no me aporta nada en especial. No digo que no esté bien, eh? :). Además, por supuesto que es tu elección, que para eso es tuyo. Pero también es mi elección apuntarme o no ;) Esto no es una crítica para nada.
Esta bien, cada cual tiene su criterio sobre estas cosas. Yo uso algunos programas gratuitos para los que no hay codigo fuente disponible, o demos de programas comerciales, y no tengo problema con eso, tampoco con usar el driver oficial de nvidia en Linux, o una Raspberry Pi que no es un sistema 100% abierto o documentado.
De todas maneras yo no pretendia que saliera gente a hacer placas ni nada por el estilo, ya puse las fotos y el diseño, esta hecho para usar componentes lo mas comunes que fuera posible, y tener tolerancia en los valores. La mayoria puede armarse uno de estos aparatos sin tener que hacer una placa de circuito impreso, yo mismo hice todas las versiones con placas universales, cables y componentes facilmente soldables. Por otro lado, es un diseño basico, queda abierto para que cualquiera lo termine como le convenga, agregandole un amplificador con LM386, ajustandolo para tener una salida de linea estandar (1Vpp), montarlo dentro de unos altavoces de PC, o lo que se le ocurra. Me parecio que a alguien le podria interesar armarse uno, y entonces lo ofrezco, si a nadie le interesa no pasa nada, yo cumpli con mi objetivo de que hubiera un chip sintetizador de voz en castellano, facil de usar y de armar, y con el menor costo posible, por lo tanto competitivo contra lo que tiene el mundo ingles. No tendra la calidad de chips comerciales, pero es un comienzo.
Tambien me preocupe de que el chip usara RS232 en lugar de hacer versiones especificas para cada plataforma, por lo que el mismo firmware sirve para todo. Y escribi drivers y demos para Spectrum, MSX y 3 modelos de Commodore. Nunca gane nada con esto y este sintetizador es y seguira siendo gratuito, solo me reservo el derecho de no distribuir el codigo fuente, y de exigir que no se modifique el binario.
La sintesis de voz es algo que me interesa y que seguire investigando, seguro habra nuevas versiones que publicare en su momento, llevo años haciendo todo practicamente solo, y pasaran muchos mas, supongo que hasta que aparezca algo que me interese mas. Y si bien no se puede aprender especificamente de este hard, si se pueden aprovechar otras cosas que fui haciendo para soportarlo, como las rutinas de envio y recepcion a 57600 bps, o el sintetizador de voz multiplataforma TAV, del cual tengo pendiente ordenar y publicar el codigo asm de todas las versiones (zx81, Spectrum 48K, Spectrum 128K, MSX, Timex Sinclair 2068, y Commodore 64).
pastbytes
Le gustan las llamas
Le gustan las llamas
Mensajes: 95
Registrado: 14 May 2016, 09:12
Ubicación: Patagonia Argentina
Been thanked: 48 times
Contactar:

Re: Sintetizador de voz y generador de sonido

Mensaje por pastbytes »

alvaroalea escribió:A mi por ejemplo, me gustaria echarle un vistazo al codigo fuente, a ver si habia posibilidad de usarlo para emular las interfaces fuller o curah.
No creo que sirva nada en ese caso, pero una de las cosas que esta en mi lista es emular un SP0256-AL2, incluso empece hace como 5 años a sintetizar algunos de los alofonos de ese chip, pero ahi se quedo sin terminarse. Este sintetizador tambien iba a conectarse al bus del procesador, pero no creo que se pueda emular facilmente una de esas interfases porque el modo PSP de los PICs que pensaba usar seguramente no respetaria los tiempos del soft existente, y si hay que empezar a agregar mas chips, es mas practico emular todo directamente en CPLD y directamente incluir los alofonos capturados del chip original.
Mis sintetizadores de voz son secuenciadores que reproducen una secuencia de fonemas, un fonema puede ser cualquier cosa, a veces son fonemas de verdad y otras son instrumentos musicales, silencios o hasta comandos de configuracion. Todo el programa esta implementado en una interrupcion que en el HR4 se llama 8680 veces por segundo, y cada vez se genera y emite una muestra. Los sonidos son generados con un sistema hibrido (de ahi la H de HR4), esto es, algunos fonemas son sonido almacenado (wavs digamos), otros son generados totalmente por codigo, y la mayoria son una mezcla de las dos cosas. El codigo tal como esta hecho es demasiado generico, es muy flexible para adaptarlo a un monton de aplicaciones, pero tiene ya tantos niveles de complejidad que en algun momento voy a tener que reescribirlo, para que tambien sea un poco mas eficiente.
Al estar fija la frecuencia de muestreo del sonido, los tonos que puede emitir son limitados, no podria emitir un tono de 5KHz por ejemplo. Por lo tanto si emulara un SP0256-AL2 lo tendria que hacer con sus limitaciones.
pastbytes
Le gustan las llamas
Le gustan las llamas
Mensajes: 95
Registrado: 14 May 2016, 09:12
Ubicación: Patagonia Argentina
Been thanked: 48 times
Contactar:

Re: Sintetizador de voz y generador de sonido

Mensaje por pastbytes »

Kyp escribió:El joystick del 128K es solo de entrada. No hay nada que hacer por ahí, aunque todos los 128K tienen un interface RS232. Los que no tienen ni joystick ni interface serie son el gomas y el plus. Y que yo sepa, ningún interfaz de joystick tipo Kempston o IF2 es de salida.

Para Spectrum si que me gustaría cambiar el diseño y añadir un par de chips para implementar un puerto de estrada/salida y conectarlo directamente al bus de expansión. Sólo habría que modificar un poco el código para que funcionara como en otros ordenadores que si tienen la posibilidad de comunicación bidireccional. Con el trabajo que has hecho ya espero que no sea mucho pedir :D

Para eso si que vendría bien que los fuentes, en este caso no el del PIC pero si el del driver, fueran públicos :| Podría hacerlo yo mismo.

Que conste que a mi me parece también muy bien que hagas lo que quieras con tu proyecto, faltaría más ;)
Bueno, el diseño principal es el que pruebo en el Commodore 64, y esta hecho todo en base a RS232, porque asi es transferible a distintos sistemas. Habria que investigar la conexion al RS232 del Spectrum, espero que sea mas apto que el de la Interface 1, que es el RS232 mas raro que vi.
El diseño actual para el Commodore donde uso sintetizador de voz y modulo wifi, es este:
c64wifisint3.gif
El puerto del usuario del Commodore es un puerto paralelo bidireccional, pero la ROM tiene soporte para usarlo como RS232, y yo lo uso en esa configuracion. La entrada del led que indica que se reproduce sonido (PLAYING) se conecta a RI (Ring indicator), por lo que un programa puede detectar que el sintetizador de voz termino de hablar chequeando el estado de esa linea. DTR se usa para seleccionar si se habla con el sintetizador de voz o con el modulo wifi, ya que lo normal para una terminal es activar DTR para conectarse, por defecto es el modulo wifi el que esta conectado. Si se quiere enviar comandos al sintetizador de voz, hay que desactivar DTR previamente. Y luego estan las lineas RTS y CTS que sirven para indicar cuando se puede recibir datos.
El plano para MSX usa esta misma configuracion, solo que aun no hice una placa de prueba que tambien incluya el modulo wifi. Y para usar todo eso tendria que portar el codigo asm que desarrolle para el Commodore, adaptandolo para Z80 y el puerto de joystick.
Todo el codigo que escribi o adapte en BASIC o ASM, de 6502 o Z80, esta disponible para el que lo pida, eso siempre fue abierto, el driver para Spectrum es una adaptacion del codigo asm para MSX que envia a 19200 bps, solo que se usa la salida MIC en lugar del puerto de joystick, no es codigo mio tampoco, yo a su vez lo adapte para que aceptara una cadena de caracteres como parametro (en el MSX eso se toma del parametro de la orden USR, en el Spectrum se busca el contenido de la variable Z$). Ya que el codigo esta disponible, se puede usar como esta desde el BASIC, o adaptar el codigo asm pasandole de forma directa el texto a enviar al sintetizador.
En MSX y Spectrum se pueden elegir varias formas de conexion, por ejemplo en MSX podria ir en el puerto 1 de joystick, en el puerto 2, en el puerto centronics, o en algun puerto a medida en el bus de expansion. Por eso agregue un comando que devuelve el modelo del sintetizador y la version del firmware, porque con eso se puede detectar la presencia de un sintetizador probando en todos los puertos para los que se diseñe una placa. Solo habria que agregar esa funcion al driver, que tenga autodeteccion y se adapte al puerto.
No tiene los permisos requeridos para ver los archivos adjuntos a este mensaje.
pastbytes
Le gustan las llamas
Le gustan las llamas
Mensajes: 95
Registrado: 14 May 2016, 09:12
Ubicación: Patagonia Argentina
Been thanked: 48 times
Contactar:

Re: Sintetizador de voz y generador de sonido

Mensaje por pastbytes »

Por cierto, por si a alguien le interesa, hace tiempo hice una version del sintetizador de voz para RS232, que se alimenta directamente desde el puerto, lo probe en un PC comun y en un Fujitsu PoqetPC Plus (un XT portatil con un procesador NEC V30). Esta en un hilo en mi foro, tiene varias fotos y un par de videos, asi que pongo el enlace directamente para no llenar este hilo con cosas no tan retro:
http://www.retrocomputacion.com/e107_pl ... .php?97160
La primera version de la "placa" da miedo de tanto cable y componente en el aire. :D
pastbytes
Le gustan las llamas
Le gustan las llamas
Mensajes: 95
Registrado: 14 May 2016, 09:12
Ubicación: Patagonia Argentina
Been thanked: 48 times
Contactar:

Re: Sintetizador de voz y generador de sonido

Mensaje por pastbytes »

Bueno, pude terminar de modificar el programa del sintetizador de voz, no elimine los comandos de lectura de joystick analogico, opte por dejarlos implementados pero sin lectura real, reportan siempre que los dos ejes/potenciometros estan en el centro, pero si reportan correctamente el estado de los dos botones del joystick. No sirve para mucho pero al menos los comandos son validos y solo restaria implementar la lectura despues.
Hace unos minutos acabo de modificar la placa de prueba para Commodore, y parece funcionar todo correctamente, el joystick se lee bien, con ejes fijos y los botones funcionales.
Ahora me queda modificar la placa para MSX, y luego probar si el soft de demostracion sigue funcionando tanto en MSX como en Spectrum, y ya podria enviarle el binario a Kyp para que pruebe.
Despues tengo que adaptar la aventura conversacional y el programa de demostracion del sintetizador HR4 para que usen el driver en lugar del RS232 de la Interface 1.
Avatar de Usuario
Kyp !Sinclair 1
Hermano de Lucifer
Hermano de Lucifer
Mensajes: 3401
Registrado: 30 Sep 2013, 14:54
Ubicación: Madrid
Has thanked: 31 times
Been thanked: 163 times

Re: Sintetizador de voz y generador de sonido

Mensaje por Kyp »

Pues nada, paciencia entonces :|
pastbytes
Le gustan las llamas
Le gustan las llamas
Mensajes: 95
Registrado: 14 May 2016, 09:12
Ubicación: Patagonia Argentina
Been thanked: 48 times
Contactar:

Re: Sintetizador de voz y generador de sonido

Mensaje por pastbytes »

Seguramente lo probare hoy, pero en España ya sera otro dia cuando eso pase, para mañana seguro lo tienes. ;)
Avatar de Usuario
Kyp !Sinclair 1
Hermano de Lucifer
Hermano de Lucifer
Mensajes: 3401
Registrado: 30 Sep 2013, 14:54
Ubicación: Madrid
Has thanked: 31 times
Been thanked: 163 times

Re: Sintetizador de voz y generador de sonido

Mensaje por Kyp »

Pues muy bien. Mañana es fiesta aquí en Madrid así que tendré tiempo para probar :D :D :D
pastbytes
Le gustan las llamas
Le gustan las llamas
Mensajes: 95
Registrado: 14 May 2016, 09:12
Ubicación: Patagonia Argentina
Been thanked: 48 times
Contactar:

Re: Sintetizador de voz y generador de sonido

Mensaje por pastbytes »

Hace un rato pude probar la placa actualizada en mi MSX Talent, fue una prueba rapida pero todo lo que cargue funciona, asi que es 100% compatible con el soft existente.
Dejo unos fotos de la prueba:
103_1500s.JPG
103_1501s.JPG
103_1504s.JPG
No tiene los permisos requeridos para ver los archivos adjuntos a este mensaje.
pastbytes
Le gustan las llamas
Le gustan las llamas
Mensajes: 95
Registrado: 14 May 2016, 09:12
Ubicación: Patagonia Argentina
Been thanked: 48 times
Contactar:

Re: Sintetizador de voz y generador de sonido

Mensaje por pastbytes »

103_1505s.JPG
103_1507s.JPG
Ya le envie el archivo a Kyp, veremos que sale de la prueba.
No probe en el Spectrum, pero deberia funcionar perfectamente.
No tiene los permisos requeridos para ver los archivos adjuntos a este mensaje.
Responder

Volver a “Proyectos de hardware abiertos”