[Tutorial] [Aporte] Sistema de alerta de voz + Convertir archivo de audio .Wav a .Hex

Hola, Circuito de aviso sonoro de puerta que queda abierta. Con el traductor de Google, puede crear alertas en su propio idioma y subirlas a la integración de Eeprom. Puedes usar este circuito en diferentes proyectos o para bromas.



00:07 Descripción general
01:45 Diagrama de circuito Dibujo de PCB
01:53 prueba 1
02:15 Prueba 2
02:31 prueba 3
02:41 prueba 4
03:02 Prueba 5
03:12 Prueba 6
03:22 Descargar voz de traducción del traductor de Google
04:05 Grabar un archivo MP3 de Audiocity como WAV
04:56 Reducir el tamaño del archivo WAV con el programa codificador BTC Soun
05:45 Reduciendo el ruido del archivo WAV con el programa editor hexadecimal Frhed
06:17 Conversión de archivo WAV a archivo HEX con el programa PonyProg (o .bin, .e2p, .mot, .csm, .rom, .epp)
07:04 Creando un archivo WAV de tamaño reducido con el programa Goldwave
09:09 Bajar volumen para límite de trabajo PWM con programa Goldwave

Fuente: MÓDULO DE FALA C/ MENSAGEM PARA ‘MANTER PORTA FECHADA’ – C/ PIC 12F675 (REF281) – PicSource
 

Adjuntos

  • 28528a.zip
    457.8 KB · Visitas: 26
  • sch.gif
    sch.gif
    38.3 KB · Visitas: 41
Hace un año me adjuntaron a un proyecto donde tenia que replicar cierta placa que genera sonidos de sirenas, ambulancias entre otros, lo curioso era que revisando la mainboard solo habia un PIC16F886 y operacionales smd de chips presentes pero ademas habia otro chip de 8 pines mas grande con un codigo que no cuadraba en la logica de funcionamiento, replicamos el funcionamiento de esa placa usando un modulo mp3 para reproducir los sonidos almacenados en su propia memoria en formato mp3, el PIC seleccionaba la ubicacion del sonido guardado y el modulo mismo lo reproducia directamente y con eso listo pero me quedo la espina de como el PIC generaba esos sonidos que se escuchaban de buena calidad no tanto como sonidos simples o ilegibles, con este post de wav a hex creo que ya entendi el funcionamiento de como el PIC reproducia esos sonidos y aquel misterioso chip smd de 8 pines y de codigo extraño para despistar era realmente una memoria eeprom ya sea 24c o spi 25xx donde se guardaba el codigo .hex del audio, tendre que intentar este proceso para ver el resultado :)
 
Bueno, si esos sonidos de sirenas y ambulancias y sus variantes que hacían un total de 8 o 10 sonidos son simples pero se escuchaban tan bien como si fueran casi calidad mp3 , y tengo entendido que para el PIC es muy pesado reproducir formato mp3, para almacenar musica mp3 si se ocuparía buena capacidad de memoria así que estaba incrédulo de que pudieran almacenarse esos sonidos en la memoria interna del PIC o que este las sintetizara a manera de una combinacion de 555s en cascadaB.

Y
por eso veo la necesidad de apoyarse en una memoria Eeprom externa (que estaba camuflada con un codigo solo numerico sin marca de fabricante como Atmel o ST ), ya el PIC se encarga de leer esa memoria y de reproducirlo con un algoritmo por software , la otra particularidad que tenía el módulo original de las sirenas era que poía reproducir o combinar dos sonidos simultaneamente , de cualquiera de las sirenas y de otros sonidos de tipo claxon que se superponían sin interferirse entre si al presionar algunas teclas del mando, con eso si me hubiera chancado la cabeza de cómo hacer esa operacion en un PIC16f628A o un PIC16F873A.

P
or eso lo hice con dos modulos mp3 de estas tarjetitas compactas, en una almacené todas las sirenas y en el otro modulo los sonidos de los diferentes claxon, me simplificó el funcionamiento y tiempo a costa de aumentar un poco la dimension de la tarjeta. Pero aún quiero probar ese método del video por si me piden mas de esas unidades y ahorrar los costos de los modulos mp3, jeje.
 
Última edición por un moderador:
Hace tiempo hice un lector para vagos, es decir, un programa hecho con Visual C# que copiabas los textos de Internet y lo pegabas a dicho programas, eliges los idiomas que tengas instalados en Windows, regula velocidad de la voz y volumen, como comprobarás, se oye de maravilla.

Lo que no he hecho que lo que lea se grabe en un audio, me lo voy a estudiar si es posible hacerlo. Lo que si he hecho, coger el mp3 o wav y pasarlo a hex con el editor hexadecimal para guardarlo en una variable dentro del ejecutable y se reproduce el sonido o audio.

Y dicho programa, todo lo que tenga texto lo puede guardar en .war donde dice el botón, GUARDAR.

Captura.JPG

El que quiera probarlo le paso el programa.

Saludos.
 
Esta aplicación que adjunto la realicé en el año 2014 para un proyecto reproductor de audio con PIC.
Es un convertidor de archivos MP3 a WAV PCM.
El PIC requería archivos en formato WAV a 8 bits, con un muestreo de hasta 44100 Hz.

Cuenta con un reproductor de archivos, un osciloscópio y dos barras de nivel. (Una por canal)
Tiene las opciones básicas de conversión, se puede seleccionar una pista o hasta varias pistas de una sola vez.
MP3ToWAV_Converter.jpg
Si no requieren convertir de MP3 a WAV, lo pueden usar como un simple reproductor de archivos MP3.
 

Adjuntos

  • MP3ToWAV.rar
    524.5 KB · Visitas: 22
Muy bueno campeón.

Está super detallado. Este programa está diseñado para estas cosas a consciencia.

¿Lo hiciste con Visual Basic 6?

No me deja ejecutarlo con Windows 10 de 64 bits.



Saludos.
 
Me muestra mensaje que Windows no me deja ejecutar ese programa por temas de seguridad. Vaya por Dios.

Por cierto, ese programa tuyo parace la leche.

¿No has pensado en hacerlo con tecnología actuales por temas de compatibilidad?

No me importaría hacerlo con Visual Studio Community 2022.

Saludos.
 
Hace tiempo hice un lector para vagos, es decir, un programa hecho con Visual C# que copiabas los textos de Internet y lo pegabas a dicho programas, eliges los idiomas que tengas instalados en Windows, regula velocidad de la voz y volumen, como comprobarás, se oye de maravilla.

Lo que no he hecho que lo que lea se grabe en un audio, me lo voy a estudiar si es posible hacerlo. Lo que si he hecho, coger el mp3 o wav y pasarlo a hex con el editor hexadecimal para guardarlo en una variable dentro del ejecutable y se reproduce el sonido o audio.

Y dicho programa, todo lo que tenga texto lo puede guardar en .war donde dice el botón, GUARDAR.

Ver el archivo adjunto 294302

El que quiera probarlo le paso el programa.

Saludos.
yo quiero probarlo...!!!

Resulta que cada tanto suena una alarma de auto en la calle o en alguna vivienda, y me di cuenta que son todas iguales, entonces cada vez que escucho el "viru viru" salto del sillón, de la cama o del baño, para confirmar que no se trata de mi auto...luego de algunos oportunos improperios, retomo actividades, pero me quedo recaliente...entonces quiero hacer una sirena que no haga "viru viru", que haga cualquier cosa diferente que me de la certeza que es la mía...puede ser la popular " muchachos, ahora nos volvimos a ilusionar, quiero ganar la tercera, quiero ser campeón mundial..." pero me conformo con cualquier otra que dure más de 4 años, hasta el próximo mundial, digo, jaja...

META, si podés decirme que micro se usa y como se hace mejor...recuerden que soy un "salieri".
 
Me muestra mensaje que Windows no me deja ejecutar ese programa por temas de seguridad. Vaya por Dios.
Estaba empacado con UPX en modo Ultrabrute.
Lo volví a adjuntar sin empacar, así que puedes volver a descargarlo.

Vaya tristeza con esto:
Overview de UPX dijo:
secure: as UPX is documented Open Source since many years any relevant Security/Antivirus software is able to peek inside UPX compressed apps to verify them

¿No has pensado en hacerlo con tecnología actuales por temas de compatibilidad?
Varios programas actuales los realizo con VS C#, pero para VB6 tengo muchas librerías que fui escribiendo tras varios años de usarlo, y convertirlas es muy tedioso, ya que desde que empecé a programar para Win32 usaba MASM32 (Ensamblador) y me hice adicto a usar las API de Windows.
Así que cuando tengo que usar librerías con funciones ya escritas, opto por el VB6.
 
Ahora funciona de lujo.
Supongo que sí, es que actualmente los antivirus se quejan de todo aquel programa empacado.
Ni siquiera comprueban si dentro del archivo realmente existe un virus, solo actúan por lectura de firmas de empacadores.
Pero bueno, a los empacadores de ejecutables les ha quedado mala fama por ser usados por los programadores de virus. :confused:
Con Visual C# lo puedes hacer más rápido y mejor, todo a cambiado.
Obviamente lo sé, pero realmente ya no es un programa que me interese, un su tiempo fue vendido junto al programa para el PIC.
Al cliente ya se le terminó la caducidad de la licencia, así que posiblemente me dé un tiempo para subir el proyecto al Foro.
Se trata de un Roger Beep para radios de banda ciudadana (CB).
Al presionar el botón del micrófono (PTT) se transmite un tono polifónico seleccionable, mientras el PTT esté presionado se transmite música de fondo, de igual forma seleccionable, y al soltar el PTT se transmite otro tono polifónico seleccionable como final de transmisión.
Las pistas musicales tienen la opción de ser continuadas tras soltar el PTT o volver a iniciar desde el principio.
La configuración es por botones/teclas/pulsadores, y todo el proceso es mostrado en una pantalla LCD.
Muy compacto y usando un PIC18F2550 que lee las pistas desde una memoria SD o uSD en formato FAT
La salidas de audio son dos, una para los tonos polifónicos y otra usando PWM para la salida análoga que se procesa por filtros.
Finalmente las salidas se mezclan para obtener un solo canal.
Para lograr la reproducción de archivos WAV-PCM-RAW a 44100 Hz monofónico, se usó el Timer 2 y a la máxima frecuencia del oscilador. (48 MHz)
Para un proceso continuo y rápido en el manejo de lectura de datos, se usó un doble búfer.
O sea, se leen los datos de uno mientras se almacenan datos en otro.
Por lógica, todo esto es llevado a cabo por control de un sistema FAT simple; carpetas, archivos, nombres, tamaños, etc.

Tras la salida de los módulos MP3 al mercado, este proyecto quedó superado por otras versiones.
Actualmente tengo sistemas que operan para máquinas Vending y aparte de usar pantallas Touch Screen, usan audio, cámara y comunicación Wi-Fi de sistema a teléfono para su configuración, estadísticas de venta y servicio.
Y es que la tecnología del IOT nos a venido muy bien a los programadores. :)
 
Dominas muy bien el tema de los audios.

Puedes hacer tu propio programa si lo deseas claro, sobre convertir .wav a .hex del 24LC512. En su época estaba haciendo uno programador de EEPROM de la serie I2C y SPI controlado con Arduino y su LCD.

Captura.JPG

Por temas laborales lo dejé pendiente.

Ya que dominas muy bien los audios, puedes hacer programas que cargue un archivo .wav, lo convierta en .hex, eligiendo su tamaño para su EEPROM indicada. Es obvio que cuanto mayor sea la EEPROM, mayor será su calidad de sonido. Si no interesa la calidad del sonido, si no tener varios sonidos diferentes que puedes elegir, o bien usas varias EEPROM 24LC512 o uso uno grande como el AT24CM02 de 2 Mbit, hablando que puedes poner 4 sonidos de 512 Kbit cada uno en un mismo encapsulado.

El programa que hice arriba es del 2017, cuando me doy cuanta, han sacado hasta de 4 Mbit pero del protocolo SPI, en vez del I2C como máximo es de 2 Mbit.


Como dije, el programa lo hice en el 2017 con Visual C#, Por suerte, hice la configuración de que si hacen nuevas EEPROM, seas capaz de añadir los nuevos valores para poder leer y escribir sobre él. Ejemplo abajo.

Lee aquí los datos que necesitas como la página, tiempo en escritura, tamaño en bytes, justo lo que necesitas.

Sólo nos queda hacer dos cosas.

1) Hacer un programa nuestro dedicado a ello, transformar o convertir de .wav a .hex para EEPROM de los protocolos I2C y SPI.

2) Hacer un único circuito con mucha memoria Flash en el microcontrolador. Es decir, te ahorras una EEPROM externa el audio lo incluyes dentro de ella, para la memoria programa o flash.

He hecho meter dos imágenes dentro de Arduino UNO. Luego por el puerto serie, recupera esas imagenes o fotos. El que quiera, lo busco su código fuente tanto de Arduino y el C#.

Ya dirás.
 
¿La calidad del audio es la misma?
El tipo de datos no tiene nada que ver con la calidad de audio.
Los datos en hexadecimal solo es un proceso de Intel para generar un archivo.
El programador lee esos datos por índice, comprueba el CRC, los pasa a decimal y los graba en la memoria..

10 en hexadecimal es A y sigue siendo 10, o en cualquier otro sistema de conversión numérica seguirá siendo 10

Ver:
Formato HEX (Intel)
 
Atrás
Arriba