Sida 1 av 2

Pratade projekt eller lite musik

Postat: 29 april 2006, 18:52:04
av ankan
Hittade pictalker vilket gick ut på att man kunde få fram en röst med bara en pic utan talsyntesenhet. Behöver hjälp så jag kan använda den i PIC C.
Vill trycka in allophones i interna EEPROMen och sedan spela upp en röst.

Alternativt, vilket jag antar är lättare, skulle jag vilja ha tips på PICC kod för att få picen att spela musik.
Hittar en del i ASM men vill helst slippa översätta eftersom jag antar någon redan har kört liknande i PIC C.

Kör Hi-techs så bästa vore om ni kan tipsa om kod till den men C-kod till annan kompilator går bra också så klart.

Postat: 29 april 2006, 19:27:08
av $tiff
Menar du att du vill spela upp förinspelade ljudslingor i båda fallen?

Jag har sett ett projekt, skrivet i asm, som gör att man kan spela upp kraftigt "special"komprimerat ljud från en vanlig PIC via en 1/1,5/2-bit DAC. Vill du göra något bättre än det så får du nog skriva själv :wink:

Postat: 29 april 2006, 23:20:18
av sodjan
Roman Black's "1 bit sound" kanske kan vara intressant :

http://www.romanblack.com/picsound.htm

Men, som $tiff antyder, det är knappast frågan om varken
en "röst" eller "musik"... :-)

Postat: 30 april 2006, 00:10:33
av $tiff
Precis den menade jag, tack för kompletteringen sodjan!

Är väldigt nyfiken på hur resultatet är med denna mjukvara, verkar inte vara någon här som provat, eller? Jag har varit nyfiken länge men aldrig kommit till skott...

Postat: 30 april 2006, 12:34:21
av ankan
Jag var inne på PICtalker:
http://www.alphalink.com.au/~derekw/pictalker/main.htm vilken kan få det att låta som att picen pratar. Måste dock banta ner antalet stavelser för få plats på interna EEPROMen på picen. Projektet ska inte kunna säga allt möjligt utan det räcker med bara några få ord.

Hittade programkod i C som baseras på PICtalker.
http://www.isk.kth.se/kursinfo/6b4059/pictalk

Annars var jag inne på att picen skulle kunna generera några olika noter så att den kan spela en truddelutt. Någon som har någon trevlig länk om det?

Postat: 30 april 2006, 13:28:36
av sodjan
När det gäller att uttala enkla/korta "fraser", så har jag för
mig att det finns (fanns ?) några kretsar med inbyggt fras-minne
och "riktig" talsyntes. Har inga länkar dock...

Postat: 30 april 2006, 13:51:04
av ankan
Jo det finns men jag vill slippa massa extra kretsar när picen kan göra jobbet.
SPO256 var en sådan krets jag tror du syftar på. Den har visserligen slutat tillverkas men http://www.speechchips.com/shop/ har ett restlager som de säljer. Men som ni ser kostar de en liten slant och om man kan göra motsvarande i en pic, varför inte?

Postat: 30 april 2006, 14:25:17
av sodjan
> ...när picen kan göra jobbet...
> ...om man kan göra motsvarande i en pic,...

Tja, varför finns det specialla ljudkretsar alls ?

Jag tror inte att man kan få en PIC (eller någon annan standard
microcontroller) att göra "motsvarande" som dessa kretsar.

Annars var det kanske dom kretsarna jag tänkte på...

Postat: 30 april 2006, 14:48:27
av ankan
Jag tycker i alla fall PIC-motsavrigheten duger för mitt ändamål. Men om vi skulle skippa talsynteten och funderar på att få ut några toner så man kan få den att spela en truddelutt. Det det borde det finns en del exempel på.

Någon som har några bra länktips?

Postat: 30 april 2006, 15:06:09
av sodjan
För enstaka toner borde man kunna använda en timer med
extern utgång. För flera samtidiga toner, vet jag inte...

Postat: 30 april 2006, 16:17:26
av ankan
Jag klarar mig med en ton i taget. Ahh du tänkte att man ger en timer olika värden beroende på not och sedan ser man till att toggla en utgång vid timer interup?
Har bara Timer1 kvar vilket är lite klumpigare att jobba med i och med att den är 16-bit. Men det är väll bara att köra 1:a -> delay -> 0:a -> delay osv med olika delay för olika noter.
Då blir det till att börja räkna lite på frekvenser och tider igen antar jag.
Eller någon som har koll på olika noters frekvenser? Antar att google är min vän.. :-)

Postat: 30 april 2006, 17:02:16
av sodjan
Ungefär så, ja.

Antagligen behöver du 16-bitars upplösning för att få tonerna rätt.
Med bara 8 bitar skulle nog det mesta låta "falskt"...

Postat: 30 april 2006, 17:40:55
av ankan
Någon som har sett någon sida där de har gjort detta?

Postat: 1 maj 2006, 02:23:50
av Chribbe76
Frekvenser kan man räkna ut såhär:

440*2^(TonNr/12)

TonNr 0 = A som ligger på 440Hz

Postat: 1 maj 2006, 02:37:22
av bearing
Det var några i skolan som gjorde en enhet som kunde spela in ljud (optimerat för röst) med en uC.

De samplade en bandpassfiltrerad och förstärkt signal från mikrofon (ca 4000 samplingar/sek) och sparade i SPI-EEPROM-kretsar.

Ljudet spelades upp med hjälp av PWM-utgången med lågpassfilter.

Ruggigt dålig kvalitet, men det gick att höra orden/meningarna man hade spelat in.