Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 14-10-2008, 14:37   #1
borelg
Member
 
Iscritto dal: Apr 2008
Messaggi: 95
[c++] Programma analizzare segnale audio

allora ragazzi premetto che io non ne so molto di programmazione e so che quello che sto per proporvi è un programma abbastanza complicato ma non vi preoccupate verrò aiutato da una persona + esperta di me. Sono qua per chiedervi se avete delle idee da darmi... il programma che vorrei realizzare è un programma in grado di analizzare un segnale audio in uscita dalla scheda audio (per intenderci una canzone) e dirmi che genere di canzone sia se:
rock/metal , pop , classica , colonna sonora , country. La mia prof mi ha suggerito di fare un programma in grado di riconoscere determinati attributi di un segnale audio e a seconda degli attributi della canzone sapermi dire il genere.
Cosa ne dite? avete idee, suggerimenti?
anche il + piccolo comemnto è di vitale importanza. Grazie in anticipo a tutti
borelg è offline   Rispondi citando il messaggio o parte di esso
Old 14-10-2008, 15:02   #2
variabilepippo
Senior Member
 
L'Avatar di variabilepippo
 
Iscritto dal: Mar 2007
Messaggi: 1792
Puoi cercare di farlo dopo aver classificato i generi in base alle componenti in frequenza tipiche di ogni genere, ma non è una cosa banalissima da implementare (anche per un programmatore non propriamente alle prime armi) e soprattutto non è facile avere un buon livello di affidabilità.
variabilepippo è offline   Rispondi citando il messaggio o parte di esso
Old 14-10-2008, 15:03   #3
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Imho è impossibile ottenere un successo al 100%. Mi spiego: non esiste una catalogazione assoluta dei generi nemmeno per un ascoltatore qualunque, quindi non può esistere per un computer.
Fra le categorie metti tra l'altro "colonna sonora", che non è una categoria possibile in quanto una colonna sonora può essere una canzone di uno qualsiasi degli altri generi.
L'unica possibilità è quella di isolare gli strumenti musicali in modo da classificarne il tipo, ma anche qui non c'è una classificazione assoluta, una chitarra distorta ci può essere anche nelle canzoni pop.

Poi ci sta che la classificazione possa essere anche fatta per caratteristiche collaterali del mixeraggio o del tipo di musica: saturazione molto alta nelle canzoni metal, spiccata polifonia per la musica classica, voce che risalta più sul resto degli strumenti per il pop...insomma ci sarebbe da analizzare molti brani per trovare caretteristiche in comune.

Però mi piacerebbe dare in pasto ad una bella rete neurale una completa libreria musicale e poi vedere cosa succede
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 14-10-2008, 18:59   #4
borelg
Member
 
Iscritto dal: Apr 2008
Messaggi: 95
in parole semplici semplici secondo voi quale sarebbe l' idea + semplice ed affidabile da realizzare?
borelg è offline   Rispondi citando il messaggio o parte di esso
Old 14-10-2008, 20:10   #5
variabilepippo
Senior Member
 
L'Avatar di variabilepippo
 
Iscritto dal: Mar 2007
Messaggi: 1792
Quote:
in parole semplici semplici secondo voi quale sarebbe l' idea + semplice ed affidabile da realizzare?
Chiedere alla tua prof come lei intende classificare i generi da un punto di vista "tecnico", poi cercare di implementare le idee della professoressa.
variabilepippo è offline   Rispondi citando il messaggio o parte di esso
Old 14-10-2008, 20:16   #6
das
Senior Member
 
Iscritto dal: Jan 2001
Città: Livorno
Messaggi: 1385
Fai la trasformata di fourier di un certo numero (alto) di periodi temporali (piccoli) del segnale.
Per ogni periodo conoscerai la distribuzione delle varie frequenze.

Fai al pari di come fanno i software antispam una specie di apprendimento manuale su un certo numero di canzoni.

A quel punti utilizzi un filtro di bayes per valutare la probabilità che in un certo genere musicale si trovi la combinazione di certe frequenze a certe ampiezze.

Credo che comunque sia un po' complicato. Di certo un minimo di esperienza di programmazione la devi avere.
das è offline   Rispondi citando il messaggio o parte di esso
Old 14-10-2008, 20:17   #7
vizzz
Senior Member
 
L'Avatar di vizzz
 
Iscritto dal: Mar 2006
Città: Bergamo
Messaggi: 2499
Quote:
Originariamente inviato da borelg Guarda i messaggi
in parole semplici semplici secondo voi quale sarebbe l' idea + semplice ed affidabile da realizzare?
leggere il genere dal tag id3v2 dell'mp3 che devi analizzare
__________________
ho concluso con: kvegeta, doctordb, Leland Gaunt.
vizzz è offline   Rispondi citando il messaggio o parte di esso
Old 14-10-2008, 20:25   #8
ech0s
Member
 
L'Avatar di ech0s
 
Iscritto dal: Apr 2008
Messaggi: 122
Ho cercato un po' in giro e ho trovato questo software: Tunatic.
Se ho capito bene, secondo quanto dice il sito, basta dargli in pasto un brano audio qualunque(anche preso dal microfono, ma non cantato dall'utente), e lui ti restituisce i tag ID3 se avviene il riconoscimento.

http://www.wildbits.com/tunatic/

Spero di esserti stato utile, almeno nel farti sapere che è possibile (sarebbe bello capire come si fa ).

Offtopic: Mi sembra che sta prof. sia un po' schizzata (spero che tu sia all'università come minimo, se si permette di fare queste domande )
__________________
Ci sono 10 tipi di persone al mondo: chi conosce il codice binario e chi no.
ech0s è offline   Rispondi citando il messaggio o parte di esso
Old 15-10-2008, 07:53   #9
das
Senior Member
 
Iscritto dal: Jan 2001
Città: Livorno
Messaggi: 1385
Quote:
Originariamente inviato da ech0s Guarda i messaggi
Ho cercato un po' in giro e ho trovato questo software: Tunatic.
Se ho capito bene, secondo quanto dice il sito, basta dargli in pasto un brano audio qualunque(anche preso dal microfono, ma non cantato dall'utente), e lui ti restituisce i tag ID3 se avviene il riconoscimento.

http://www.wildbits.com/tunatic/

Spero di esserti stato utile, almeno nel farti sapere che è possibile (sarebbe bello capire come si fa ).

Offtopic: Mi sembra che sta prof. sia un po' schizzata (spero che tu sia all'università come minimo, se si permette di fare queste domande )
Ma Tunatic fa una cosa diversa: è semplicemente basato su un server dove sono memorizzate tutte le canzoni e i relativi tag.
das è offline   Rispondi citando il messaggio o parte di esso
Old 15-10-2008, 13:08   #10
borelg
Member
 
Iscritto dal: Apr 2008
Messaggi: 95
ok grazie mille a tutti per le risposte... comunque non ho bisogno proprio che distingua esattamente i generi, mi basta che distingua le canzoni dove non c' è il cantante da quelle con un ritmo un po' + acceso come rock/ metal a quelle con un ritmo + rilassato come pop, classica ok?
su mi accontentassi di questo sarebbe + facile da fare il programma?
grazie in anticipo
borelg è offline   Rispondi citando il messaggio o parte di esso
Old 15-10-2008, 13:44   #11
ech0s
Member
 
L'Avatar di ech0s
 
Iscritto dal: Apr 2008
Messaggi: 122
Quote:
Originariamente inviato da das Guarda i messaggi
Ma Tunatic fa una cosa diversa: è semplicemente basato su un server dove sono memorizzate tutte le canzoni e i relativi tag.
Si ma in un certo senso mi pare di aver capito che analizza il segnale audio della canzone, e poi lo confronta con le impronte che ha nel db, ricavando i tag.
__________________
Ci sono 10 tipi di persone al mondo: chi conosce il codice binario e chi no.
ech0s è offline   Rispondi citando il messaggio o parte di esso
Old 15-10-2008, 15:37   #12
tomminno
Senior Member
 
Iscritto dal: Oct 2005
Messaggi: 3306
Quote:
Originariamente inviato da borelg Guarda i messaggi
allora ragazzi premetto che io non ne so molto di programmazione e so che quello che sto per proporvi è un programma abbastanza complicato ma non vi preoccupate verrò aiutato da una persona + esperta di me. Sono qua per chiedervi se avete delle idee da darmi... il programma che vorrei realizzare è un programma in grado di analizzare un segnale audio in uscita dalla scheda audio (per intenderci una canzone) e dirmi che genere di canzone sia se:
rock/metal , pop , classica , colonna sonora , country. La mia prof mi ha suggerito di fare un programma in grado di riconoscere determinati attributi di un segnale audio e a seconda degli attributi della canzone sapermi dire il genere.
Cosa ne dite? avete idee, suggerimenti?
anche il + piccolo comemnto è di vitale importanza. Grazie in anticipo a tutti
E' stato l'argomento della mia tesi... durata 1 anno.
Conoscenze matematiche coinvolte tante, perfino troppe.
I parametri base sono quelli energetici (che non servono a niente), poi c'è il cepstrum in tutte le sue varianti, poi gli HMM, filtri adattativi...
Devi implementarti come minimo anche un algoritmo di beat tracking.
tomminno è offline   Rispondi citando il messaggio o parte di esso
Old 15-10-2008, 15:40   #13
tomminno
Senior Member
 
Iscritto dal: Oct 2005
Messaggi: 3306
Quote:
Originariamente inviato da borelg Guarda i messaggi
ok grazie mille a tutti per le risposte... comunque non ho bisogno proprio che distingua esattamente i generi, mi basta che distingua le canzoni dove non c' è il cantante da quelle con un ritmo un po' + acceso come rock/ metal a quelle con un ritmo + rilassato come pop, classica ok?
su mi accontentassi di questo sarebbe + facile da fare il programma?
grazie in anticipo
Per identificare la presenza di un cantante basta eseguire un effetto karaoke (banalmente sottrazione tra i 2 canali) ed andare ad analizzare l'energia sottratta al segnale originale e le bande in cui questa avviene.
Per quanto riguarda il ritmo, gli algoritmi di beat tracking non sono proprio facilissimi da implementare, inoltre possono essere computazionalmente assai onerosi
tomminno è offline   Rispondi citando il messaggio o parte di esso
Old 15-10-2008, 16:09   #14
songoge
Member
 
Iscritto dal: Nov 2001
Messaggi: 206
Come te la cavi con l'inglese?
Male? Allora imparalo che è fondamentale in questo lavoro.

Altrimenti vedi qui. http://www.dspguide.com
Ottima guida, con codice di esempio.
songoge è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 07:16.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v