Here are some number sound files and Darrel Taylor's example program that allow your PIC chip to talk out numbers to you. The RB sound files are pretty scratchy, so if you want a professional sounding product, this is not the way to do it. But it is understandable, and sure beats counting the flashes of an LED. It also uses a lot of storage space for the sound files. But the fact that you can store them on a chip, is pretty cool. Darrel's RB_Sound include file was used, as well as his testRBsound program . Check out post # 5 for his post in this thread.
Here is the suggested filter (Roman Black) that may make it sound a little better.
; R = 25968 ohms
;
; Digital -----------R-----*----- Analogue
; | out
; |
; |
; C = 0.22 uF
; |
; |
; |
; Gnd
;
The attached audio sample audio-sound-mp3.zip using a 18f4550 in PIC-USB-STK hardware from Olimex. But you can also get similar sound out of a non amplified piezo speaker using a 5uf capacitor.Code:'********************************************************************* '* Name : TestRBsound.pbp from Darrel Taylor * '* Author : Darrel Taylor, modified by Walter Dunckel for numbers * '* Date : 5/24/2010 * '* Version : 0.1 * '* Notes : This version is limited to 18F's * '* : with only 1 sound at a time * '********************************************************************* ;-- Target = 18F4550 -- asm __CONFIG _CONFIG1L, _PLLDIV_5_1L & _CPUDIV_OSC1_PLL2_1L & _USBDIV_2_1L __CONFIG _CONFIG1H, _FOSC_HSPLL_HS_1H __CONFIG _CONFIG2L, _PWRT_ON_2L & _BOR_OFF_2L & _VREGEN_ON_2L __CONFIG _CONFIG2H, _WDT_ON_2H & _WDTPS_512_2H __CONFIG _CONFIG3H, _PBADEN_OFF_3H __CONFIG _CONFIG4L, _LVP_OFF_4L & _XINST_OFF_4L endasm DEFINE OSC 48 btc_Pin1 VAR PORTC.1 'sound output pin btc_Pin2 var portC.3 'dummy pin to keep DT_RBSound.pbp happy LATE_LED var PORTD.0 DEFINE btc_DATA db INCLUDE "DT_RBSound.pbp" @ ImportSound n0, "zero.asm" @ ImportSound n1, "one.asm" @ ImportSound n2, "two.asm" @ ImportSound n3, "three.asm" @ ImportSound n4, "four.asm" @ ImportSound n5, "five.asm" @ ImportSound n6, "six.asm" @ ImportSound n7, "seven.asm" @ ImportSound n8, "eight.asm" @ ImportSound n9, "nine.asm" @ ImportSound n10, "ten.asm" @ ImportSound n11, "eleven.asm" @ ImportSound n12, "twelve.asm" @ ImportSound n13, "thirteen.asm" @ ImportSound n14, "fourteen.asm" @ ImportSound n15, "fifteen.asm" @ ImportSound n16, "sixteen.asm" @ ImportSound n17, "seventeen.asm" @ ImportSound n18, "eighteen.asm" @ ImportSound n19, "nineteen.asm" @ ImportSound n20, "twenty.asm" @ ImportSound n30, "thirty.asm" @ ImportSound n40, "forty.asm" @ ImportSound n50, "fifty.asm" @ ImportSound n60, "sixty.asm" @ ImportSound n70, "seventy.asm" @ ImportSound n80, "eighty.asm" @ ImportSound n90, "ninety.asm" @ ImportSound n100, "hundred.asm" @ ImportSound n1000, "thousand.asm" Main: 'says 140,259 @ PlaySound n1 pause 100 @ PlaySound n100 pause 100 @ PlaySound n40 pause 100 @ PlaySound n1000 pause 100 @ PlaySound n2 pause 100 @ PlaySound n100 pause 100 @ PlaySound n50 pause 100 @ PlaySound n9 pause 3000 goto main


uses a "simplified Adaptive Differential Pulse Code Modulation (ADPCM) algorithm". The files look slightly larger than the Roman Black files, but not by much, comparing to the numbers files sizes. The source code also has an executable file called winspeech.exe which encodes wave files.



Bookmarks