• Me olvidaba que en este foro no se puede dividir un tema y mover una parte a un foro diferente, asi que arme otro tema en el foro de software de Sinclair para no desvirtuar este tema. De paso aproveche para escribir un resumen de todas las etapas por las que paso el proyecto, por si a alguien le interesa por que tome las decisiones que tome.
    El tema esta en LINK
     

  • *** VERSION 1.0 AHORA USABLE DESDE BASIC ***

    Modifique el programa eliminando la interfaz y agregando soporte desde el BASIC, para igualarla a las otras versiones para maquinas Sinclair. Adjunto un D64 donde esta la version 1.0 ya publicada, y la nueva version para BASIC. Como las otras versiones, trae un programa BASIC de ejemplo llamado en este caso TAV64 BASIC, el cual se encarga de cargar el sintetizador en codigo maquina, y luego permite el ingreso de texto para ser hablado.
    El sintetizador se carga en los 4K que empiezan en la direccion 49152, por lo que no resta memoria al BASIC. Se tienen dos llamadas posibles:
    Con SYS 49155 se llama a la rutina que muestra los creditos y habla un texto de presentacion.
    Con SYS 49152 se llama al sintetizador, el cual busca una variable ZZ$, si no existe o esta vacia retorna el control al BASIC, si existe reproduce el texto antes de retornar.
    Tal como en otras versiones, el programa BASIC de ejemplo usa INPUT, por lo cual si se quiere usar algunos caracteres como la coma, que representa una pausa de 1/4 de segundo, debe ingresarse el texto entre comillas, para evitar que ignore el texto despues de la coma.
    En la primera linea el programa carga el sintetizador, previo chequeo para verificar si ya lo cargo, de esta forma se puede volver a ejecutar el programa una vez que se sale, sin que vuelva a intentar la carga. Se puede salir del programa ingresando el caracter flecha izquierda como unico texto.
    Tambien agregue algunos agradecimientos a los creditos. wink.png


    ]tav64_v1.0.d64[/file]
     

  • probando a la tarde la nueva version!
     

  • Empece a pasar algo de informacion a una seccion de mi sitio pastbytes.com para tener todas las versiones del programa en un solo lugar junto con los manuales. Tambien si no me aburro antes iba a explicar un poco del desarrollo del proyecto. Por ahora al menos ya la seccion de descargas esta al dia.
    La informacion esta en:

    http://www.pastbytes.com/apps/tav

    Tambien se puede entrar desde cualquier parte del sitio con el icono Aplicaciones, y luego TAV.
     

  • Eso es lo que yo llamo "terminar el año a todo trapo"... wink

    Impresionante laburo. Y para casi todas las plataformas!!!

    En el 2012 que vas a inventar ??? smile
     

  • Realmente flor de laburo y desarrollo !
    Ya que hiciste el sintetizador...ahora un digitalizador con reconocimiento de pequeños comandos, y una interface para activar cosas !!! Multiplataforma claro.
     

  • muy groso va quedando el web , todo multiplataforma , muy bueno ...
     

  • Eso es lo que yo llamo "terminar el año a todo trapo"... wink Impresionante laburo. Y para casi todas las plataformas!!! En el 2012 que vas a inventar ??? smile

    Ariel Palazzesi

    Para no repetir, en este mensaje comento un poco en que ando ahora:
    http://www.retrocomputacion.com/e107_plugins/forum/forum_viewtopic.php?63713.10#post_64266

    Con respecto a la C64, sigue un sintetizador con alofonos del ingles (como comento en ese mensaje), que no tiene mucha utilidad para nosotros pero me parece una oportunidad interesante para aprender mas del idioma y aprovechar todo lo que aprendi en este tiempo sobre sintesis y compresion de ondas digitalizadas.
    Tambien me pidieron soporte para el idioma aleman en el foro de ZX-Team, ahi si que no tengo idea, pero si se consiguen muestras de alofonos o fonemas lo puedo hacer aunque no entienda el lenguaje. Todo es posible hasta que se demuestre lo contrario. Igual no me meteria en estas locuras si no fuera porque desde siempre me interesan los idiomas, por ahi termine aprendiendo un poco de aleman de una vez. Tengo un curso archivado desde los 90s que empece muchas veces y siempre quedaba para verlo en el futuro, incluso venia con cassettes de audio! Eso si que es retro. biglaugh.png
    Como comente en el otro mensaje, estaria bueno que la gente pruebe el sintetizador de voz de C64, en este sitio ya se hicieron muchas pruebas y la version es estable, no como las versiones Z80 que todavia requieren algunos ajustes menores. Si alguien esta registrado en otros sitios de habla castellana pueden publicar la web LINK para tener criticas y sugerencias para una futura version, aunque esto no va a ser inmediato. Tengo algunas pequeñas cosas para agregar para la version 1.1, pero son esteticas mas que nada, no aportan nada al motor de sintesis, me parece que hay que agregar caracteristicas que justifiquen otra version, lo minimo seria por ejemplo soportar todos los sonidos del castellano para todos los paises, por eso cuantos mas paises lo prueben, mejor. Siendo un programa hecho para Argentina no es de extrañar a que nosotros nos suene bien y a gente de otros paises les parezca que faltan sonidos fundamentales. Yo intente registrarme en commodoremania.com pero no hubo caso, siempre me da error asi que desisti, si alguien esta registrado ahi puede publicarlo, aunque no se que tanto movimiento tenga ese foro.
    En el programa sale mi email si alguien quiere enviar sugerencias o reportar algun problema, asi que no hace falta que se registren en este foro. wink.png

     

  • Realmente flor de laburo y desarrollo ! Ya que hiciste el sintetizador...ahora un digitalizador con reconocimiento de pequeños comandos, y una interface para activar cosas !!! Multiplataforma claro.

    Beamrider

    Asi sin pensarlo mucho, diria que sin asistencia de hard es imposible hacer reconocimiento de voz, de hecho ya es complicado para un PIC16 de 20MHz, yo pude hacer en el PIC el reconocimiento de tonos telefonicos, el PIC se conecta al telefono, reconoce la tecla que uno pulsa y emite un mensaje digitalizado grabado en una memoria flash, todo esto en tiempo real y en multitarea, es decir se puede ir pulsando distintas teclas, se interrumpe el mensaje y se empieza el nuevo. Pero el algoritmo esta hecho para reconocer un maximo de 8 frecuencias bien definidas y requiere un tiempo para digitalizar y analizar varias muestras, no determina la frecuencia sino que compara la señal con frecuencias precalculadas y da un grado de aproximacion para descartar si corresponde o no. Adaptandolo un poco puede que se puede utilizar para la voz, pero hay que analizar muy bien varias muestras de voces diferentes para tener una idea de frecuencias en comun que se puedan usar. Para recibir ordenes simples probablemente sea posible hacer algo, ese codigo puede correr en paralelo con el sintetizador de voz para PIC16 y de hecho corre, porque la voz digitalizada que reproduzco desde la flash pasa por el sintetizador, que se limita a leer cada muestra desde la memoria en vez de hacerlo desde el programa. Pero ya que es el mismo programa, se puede perfectamente mezclar sonidos en memoria externa y sonidos sintetizados, el programa que tengo hecho trata todo como fonemas, hay fonemas sintetizados, fonemas virtuales que son sonidos en memoria flash, e incluso captura en vivo desde el conversor A/D del PIC, todo eso puede agregarse transparentemente a la lista de reproduccion del sintetizador. El secuenciador le pasa el control a la rutina correspondiente y esta puede obtener el sonido como sea (sintesis, memoria flash, conversor A/D) y solo tiene que devolver una muestra de 8 bits para enviar a la salida de audio, cuando hace eso devuelve el control al secuenciador.
    Para no hacer el tema mas largo, con el mismo chip sintetizador de voz se puede tener ademas algun reconocimiento basico de frecuencias, se podria pasar esta informacion a la C64 como un numero de 0 a 7 y que algun programa en la C64 reconozca la variacion de la voz, o se podria hacer algo integrado en el PIC, aunque esto dejaria el programa mas limitado para hacer mejoras.
    Esta informacion de frecuencia tambien podria servir para hacer un vumetro, aunque solo para las frecuencias de usadas por la voz, de no mas de 4KHz. Por otro lado, la tolerancia a estas frecuencias es muy ajustada porque el programa esta diseñado para no variar mas del 1 o 2% si mal no recuerdo (la tolerancia del reconicimiento de DTMF), asi que no serviria mucho para un vumetro musical.
    En cuanto a la interfaz para activar cosas, eso ya se puede hacer con el puerto del usuario, pero si se usa el PIC, hay un monton de pines que quedan sin usar, asi que se podria tener algo asi de 12 o 13 pines de E/S, los cuales se podrian leer o activar por la misma conexion RS232 usada para el sintetizador. wink.png
     

  • Termine de hacer la primera parte del himno con las nuevas rutinas de canto del sintetizador, esta hecho lo mejor que pude, ya que sabia poco y nada de musica y tuve que aprender a leer la partitura mientras hacia el programa. Tomo un monton de dias porque siempre aparecia algun detalle en la partitura que me modificaba alguna nota, y esto alteraba los calculos de tiempos tambien, por lo que tenia que rehacer lo que ya tenia listo. Todavia hay cosas que no tienen mucha logica para mis limitados conocimientos sobre partituras, asi que en algunas partes tuve que improvisar y elegir notas que sonaban mas fieles al original aunque indicara notas diferentes. Seguramente debe ser un problema mio de interpretacion, no creo que la partitura este mal.
    Hoy le estuve agregando el texto para que vaya marcando la letra a medida que canta, todavia falta hacer la parte final, pero publico esta version como esta porque no se cuanto va a tomar hacer el resto. Me dijeron que en una maquina PAL europea se cuelga luego de la deteccion del modelo de SID, es decir que imprime el texto en pantalla y no hace nada mas, si alguien tiene una maquina europea seria interesante que lo prueben. En el emulador anda bien con esos modelos de C64, habria que ver que pasa con una maquina real.
    Este programa sigue siendo portable a maquinas Z80, con excepcion de la parte de impresion en pantalla, que tal vez no tenga la velocidad suficiente como para implementarlo sin alterar el sonido. Pero la verdad es que si no hubo betatesters para siquiera pasar a version 1.0 mas que en la version C64, tal vez las otras versiones queden canceladas, al menos por el momento todo lo que es desarrollo en Z80 esta detenido, salvo el sintetizador en ingles para ZX81+PSG.
    ]tav64demo.zip[/file]
     

Moderador (s): thierry, homecomputer, Selandari, pastbytes, Durandal