• Esto ya es un vicio suprised
     

  • Pero lamentablemente son todas necesarias, la HR5 usa un chip distinto y no se puede adaptar a la placa anterior. Solo en el caso de la version para Commodore decidi tomarme el trabajo de hacer modulos separados, y eso solamente porque no tengo mas que un conector para el puerto del usuario. Pero la siguiente version que venga despues de la HR5 ya va a compartir el mismo formato de chip asi que solo va a cambiar el PIC y el cristal.
     

  • *** Resumen de 2015 y planes futuros ***

    Como pasa el tiempo, pasamos de enero a diciembre sin escalas.
    Si bien no se vio mucho progreso este año, y es cierto que tuve poco tiempo para desarrollar, los avances estuvieron mas del lado del usuario que de programador. A fines de 2014 empece una variante del sintetizador HR4, el HR5, que casi duplicaba la frecuencia de muestreo de emision de sonido y de las ondas almacenadas, y que corria en un PIC con el doble de memoria disponible.
    La idea inicial era que el HR5 agregara al menos 2 canales de sonido (musica) simultaneos al canal de voz, y que los tiempos de los sonidos y voz ahora se especificaran en tiempos musicales, cosa que facilitaria mas la composicion musical. Pero por otro lado, queria mantener compatibilidad con el HR4, y esto termino complicando las cosas.
    Como consecuencia de estas complicaciones, aclare alguna vez que no sabia si el sintetizador HR5 estaria listo este año, o si alguna vez lo completaria. En este momento tengo que decir que, si bien no lo considero definitivamente cancelado, esta mas cerca de eso que de completarse. El proyecto esta congelado por tiempo indeterminado (cualquier semejanza de esa frase con la actualidad del mundo de la politica es pura coincidencia biglaugh.png ).
    Sin embargo, la indefinicion acerca de que camino tomar para mantener los comandos, el motor de sintesis y el bus utilizado (mi idea con respecto al HR5 era que empezara con RS232 y luego evolucionara conectandose directamente al bus del procesador como un cartucho), sumado a la falta de tiempo, me llevaron a probar otras cosas que no habia tenido tiempo de hacer antes.
    En las versiones anteriores, siempre habia grandes obstaculos tecnicos a superar, en la calidad del sonido, la complejidad de los algoritmos o la poca memoria disponible, por lo que cada prueba que hacia como usuario dejaba en evidencia los puntos debiles de los fonemas o los algoritmos para ajustar el tono de la voz. En este desarrollo no solo se requiere programar y editar audio, sino que cada tanto hay que ponerse en el lugar del usuario y hacer textos y aplicaciones que usen el chip, para verificar que fonemas se adaptan mejor a textos de la vida real. Los juegos y demostraciones que hice para C64, Plus/4, Spectrum, MSX y PC tenian, ademas de proporcionar un minimo de soft para los pocos que tienen un chip, la finalidad de hacer este tipo de pruebas.
    Alguna vez comente que estos sintetizadores se basan en algunas pocas ondas de sonido digitalizado que son procesadas en tiempo real para lograr otros sonidos mas complejos, aunque tambien hay sonidos que son generados puramente por programa. Los sonidos en que se basa cada version tienen como base audio en calidad CD, siempre que hago alguna modificacion se hace sobre esos archivos y luego se renderiza un audio de menor calidad para el sintetizador correspondiente. Hace años tenia la duda de si algunos problemas de inteligibilidad se debian a las bajas frecuencias de muestreo que estaba usando, y recien pude saber eso cuando llegue al sintetizador HR5, que tiene suficiente calidad de sonido como para exceder lo necesario para representar correctamente la voz humana. La respuesta podria ser "si pero no". biglaugh.png
    Antes de aclarar esto ultimo, hay que recordar que hice varias versiones de la aventura conversacional Neutronia, cada una para una plataforma diferente, y si bien esto no parece haber aportado demasiado (digo, desde lejos solo parecen adaptaciones de un mismo programa a distintas plataformas), la realidad es que en cada una mejoraba la entonacion de las frases, un trabajo bastante aburrido y repetitivo que dio bastantes resultados, porque ahora ya tengo un conjunto de reglas para mejorar la inteligibilidad o la expresividad de una frase.
    La mayoria de las pruebas que hice en el año apuntaban a mejorar la naturalidad de la voz, esto es, que no sonara robotica, y pareciera mas expresiva. Esto se puede decir que esta bastante logrado. Otras de las pruebas apuntaban a la inteligibilidad, es decir que tan bien se entiende una frase sin saber de antemano lo que dice, y en esto los sintetizadores no siempre pasaban la prueba.
    Si bien todas estas pruebas sirvieron para hacer mejoras a algunos fonemas, que despues se incorporaron tambien al HR4 (demostrando que no necesariamente la baja frecuencia de muestreo hace menos inteligible a la voz), tambien me mostraron que el problema de algunos fonemas no estaba en la calidad de sonido sino en el propio algoritmo de generacion. En definitiva, y respondiendo a lo del muestreo, no necesariamente una mayor calidad haria la voz mas entendible, al menos no con este motor de sintesis, aunque si hace mas clara la voz. Se podria decir que mejora un poco la inteligibilidad de algunos sonidos, pero seria mas practico rehacerlos correctamente de forma de que se entiendan aun con baja calidad de sonido.
    Mi conclusion luego de las pruebas fue que este sintetizador HR5 no tenia mucho futuro, porque requeria un mejor conocimiento de la generacion de la voz (que actualmente no tengo), aunque no descarto que en cualquier momento se pueda retomar este proyecto.

    Continuara...
     

  • Menos mal que es un resumen... smile.png
     
  •  
  •  

  • Iba a hacer un "resumen del resumen", pero a esa hora ya estaba cansado. Incluso tuve que dejar una parte del texto afuera!  biglaugh.png
    Como resumen del resumen, se podria hacer algo asi:

    - A fines de 2014 empece el sintetizador HR5, con mejor calidad de sonido que el HR4.
    - En 2015 tuve poco tiempo para desarrollar el nuevo sintetizador, pero me dedique bastante a probarlo con textos mas realistas.
    - Logre mejorar mucho la naturalidad de la entonacion de las frases, pero todavia hay textos que no se entienden si no se sabe de antemano lo que dice.
    - Mantener compatibilidad con el sintetizador HR4 mientras a la vez se agregan mejoras en el sintetizador musical resulto ser muy complicado.
    - Por diversas razones tecnicas, decidi que era mejor empezar otro sintetizador con un motor de sintesis distinto, antes que continuar este.

    El "resumen" completo dice mas o menos eso, lo que ocurre es que cuando pasa cierto tiempo y mas cuando es un hilo tan largo, quiero evitar que se tenga que releer los mensajes anteriores, eso hace que tenga que explicar de nuevo cosas que el que viene siguiendo el tema ya sabe. Y ademas en este caso particular, las pruebas que hice eran muy tecnicas y requerian explicacion detallada.
     

  • Ahora si la segunda parte, que es lo de los planes para el futuro:

    Mi decision entonces fue comenzar un nuevo sintetizador experimental, para ir probando nuevos metodos, tanto de generacion de voz como de sintesis musical multicanal, y en esa planificacion estaba cuando "descubri" un sintetizador que habia diseñado en 2011 y al que nunca le dedique tiempo para evaluarlo. Este sintetizador estaba basado completamente en sonido digitalizado, y los sonidos que tenia capturados entonces (en la epoca del sintetizador HR2), si bien le daban gran realismo a la voz, no terminaban de convencerme. Hace unas semanas se me ocurrio regrabar algunos fonemas fundamentales, pero hasta ahora no habia tenido tiempo de procesar ese sonido, y resulto que esas nuevas capturas mejoraron drasticamente al sintetizador, haciendolo muy inteligible. Indudablemente, los 4 años de experiencia transcurridos no pasaron en vano. shades.png
    El problema fundamental de este sintetizador, es que requiere una cantidad muy grande de memoria, de alrededor de los 22K para sonido de 15Khz, que solo podia implementarse en un PIC18 ocupando 11K de la memoria (11K palabras de 16 bits), ya que un PIC16 soporta como maximo 8K de memoria de programa. Por esta razon quedo archivado por años esperando el momento en que pudiera implementarlo en un PIC18.
    Y llegamos a estos ultimos dias, en los que analizando si se podia reducir de alguna manera los requerimientos de memoria de este sintetizador, se me ocurrio probar distintos metodos, entre ellos reducir la frecuencia de muestreo de emision de sonido y/o de las ondas almacenadas (no tienen por que ser iguales), llegando a la conclusion de que se conserva la inteligibilidad aun a 7812Hz y con una resolucion de 3 bits.  amazed.png  Esto haria posible incluso implementar este sintetizador por soft en una Commodore Plus/4, que puede generar sonido digitalizado alterando el volumen, precisamente con una resolucion de 3 bits (4 bits en la Commodore 64).
    Por ultimo, se me ocurrio hacer otra prueba, ver que pasaria si no necesitara todos los sonidos capturados y en lugar de eso usara solo los mas importantes, y conservara los fonemas generados por programa de los sintetizadores existentes. Las pruebas preliminares parecen indicar que es totalmente posible, y reducen las ondas necesarias de 11K (palabras de 16 bits) a alrededor de 3K. Esto hace posible modificar un sintetizador HR5 para contener en sus modestos 8K parte del antiguo sintetizador y parte del nuevo, lo que da origen a otro sintetizador hibrido, que va a llamarse HD1.
    Para implementar este nuevo sintetizador HD1, tome la decision de abandonar la compatibilidad con los comandos de ajuste de tono/nota de la voz y los de la generacion musical de los sintetizadores HRx. El HD1 tendra al menos un canal de voz, y tantos canales musicales como pueda implementar, que no creo que sean mas de 3. La frecuencia de muestreo de salida sera de 15625 Hz, igual que la del HR5, y tendra dos salidas de audio independientes. Es probable que la version final solo se conecte directamente al bus de un 65xx o Z80 y que no haya version para RS232, pero si resulta factible manejar 3 o 4 canales con una sola conexion serie, puede que haga tambien una version RS232.
    El sintetizador va a correr en un PIC16F886, pero la version final requerira un PIC18. La implementacion en un PIC16 requiere sacrificar parte de las ondas y reducir levemente la calidad, pero se va a tener algo de compatibilidad con los HRx, al menos en lo que respecta a la voz. Sin embargo, por el metodo de sintesis utilizado, es probable que el rango del tono de la voz no pase de las 2 octavas, y ya no se podra ajustar la nota. Este es un proyecto diferente que apunta a tener un sintetizador de voz con mayor realismo pero menos flexibilidad, y un sintetizador musical mucho mas completo.
    Con un poco de suerte, en poco tiempo tal vez pueda hacer algunas pruebas.

    Resumen para el que no tiene ganas de leer mucho wink.png :

    - Buscando un reemplazo para el sintetizador HR5, empece un nuevo sintetizador experimental, y ordenando archivos y notas encontre un proyecto de sintetizador basado en sonido digitalizado, que diseñe en 2011 pero que nunca implemente.
    - Investigue este viejo proyecto y pude mejorarlo rapidamente rehaciendo algunos sonidos, logrando una buena calidad de voz.
    - Una vez determinado que cumple con el nivel de inteligibilidad que buscaba, tenia que ver como reducir los requerimientos de memoria, ya que usa 22K solo de sonido, sin contar el programa.
    - Despues de varias pruebas y unas cuantas optimizaciones, llegue a la conclusion de que se podia combinar algunos sonidos de este sintetizador, con otros del HR5, y que entre todo en los 8K del PIC.
    - De esta mezcla sale un nuevo sintetizador, llamado HD1, que no va a ser tan flexible con los parametros de voz como los HRx, pero mejora la calidad, y va a incorporar un mejor sintetizador musical.
     
  •  

  • Jaja, eran solo dos partes, no se asusten.  biglaugh.png
    Estaba considerando hacer alguna version del nuevo sintetizador de voz para C64, pero todavia no lo decido. Si lo hiciera, ya no se si lo portaria a maquinas con Z80, es un lio manejar tiempos exactos en esas plataformas, y tambien se me complica pasar los programas a las maquinas. Esto me recuerda que tengo que armar la controladora de 720K que me envio Ciro, ya tengo el zocalo que faltaba, la fuente y la disketera, solo me falta una caja donde armar todo, y ponerme a soldar.
    En principio, si vuelvo a programar en asm de 6502, lo mas probable es que porte el programa a C64, Plus/4 y C128 (en modo 128).
     

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