Oppure

Loading
04/06/12 11:18
erosmax
Salve, per prima cosa ciao a tutti. Sono nuovo in questo forum. :k:
Ora espongo le mia richiesa. :)
Avrei bisogno di un aiuto per come poter far confrontare un audio che ho salvato sull'HD con uno proveniente dal PC.
Mi spiego meglio:
Ho un file audio sul mio PC che leggo in Binario.
Vorrei che, all'esecuzione del mio programma, questo confronti il file (o parte) con un audio proveniene dagli altoparlanti (es:player web o musica sottofonfo) e mi dica se sono uguali (Es: una parte di canzone, oppure una frase di un personaggio).

Grazie per l'aiuto.
Ultima modifica effettuata da erosmax 04/06/12 11:22
aaa
04/06/12 16:34
nessuno
Quello che chiedi è molto più complesso di quello che tu possa pensare.

Devi ottenere le informazioni audio (sampling) e normalizzarle per rate di acquisizione e ampiezza.

Poi dovresti calcolarne la densità spettrale (ESD) e poi misurare il MSE (mean squared error) ...

Nulla di tutto ciò è fattibile in realtime con VB6 ...
Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
04/06/12 16:44
erosmax
Purtroppo lo so che è molto complicato.... ma non impossibile!
Io avevo trovato qualche esempio, che poteva fare al caso mio... ma dovrei studiarmelo mooolto a fondo.
Se non esiste nulla di più semplice, allora vorrà dire che il mio software attenderà parecchio prima di completarsi. :P
Ecco il link del sorgente free scaricabile:

AudioCardDSP by F. Languasco:
Acquisisce i segnali provenienti dalla scheda audio e li invia agli strumenti di analisi.

it-lang-vb.net/Archivio/Sorgenti/…

PS: Se non potevo linkare, cancellate e scusate!
Ultima modifica effettuata da erosmax 04/06/12 16:48
aaa
04/06/12 20:55
nessuno
Quel codice, come da titolo, "acquisisce i segnali e li invia agli strumenti". Ma non fa confronti, no ?
Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
05/06/12 8:12
erosmax
Infatti! Non fa confronti ma... come invia agli strumenti, si potrebbe inviare ad un confronto.
Devo studiare bene il codice e capire come fare il confronto.
Altrimenti, potrei caricare il file registrato ed "inviarlo agli strumenti" (quindi dovrebbe esserci un posto dove questi dati sono appoggiati) e confrontarli con gli stessi dell'audio in real-time! :k:
Insomma, alle brutte, confrontare la banda d'onda... ma, è probabile, che si potrà fare anche "binariamente". :D
Ancora non gli ho dato un occhiata approfondita al sorgente, ma solamente testato se faceva quello a cui ero interessato... spero di riuscire nella cosa, anche se il tempo è assai tiranno per dedicarmene! :(
Ciao.
Ultima modifica effettuata da erosmax 05/06/12 8:14
aaa
05/06/12 8:32
nessuno
Postato originariamente da erosmax:

Infatti! Non fa confronti ma... come invia agli strumenti, si potrebbe inviare ad un confronto.


Ma che c'entra? Inviare significa "passare dei dati", per confrontarli ci vogliono degli "algoritmi" ben precisi ... Le due cose sono completamente diverse ...

Devo studiare bene il codice e capire come fare il confronto.


Allora non mi sono spiegato ... è inutile che studi quel codice ...

si potrà fare anche "binariamente".


Va beh ... ho capito ... buona fortuna ...
Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
05/06/12 9:29
erosmax
Mai dire mai!.
Tu insisti nel dire che non è fattibile in VB6! :nono:
Infatti, ho chiesto aiuto in questo forum per poter vedere se qualcuno aveva qualche idea in merito ma ho ricevuto solo pareri negativi (per ora solo da te ;) ).
Vabbene! Io non critico nessuno, per carità! ;)
Tu sei libero di pensarla in questo modo ma io, non mi fermo davanti a nulla.
Non capisco.
Forse sarò io un nubbio ma... nella forms dell'Oscilloscopio è presente un Command "Store", che serve a campionare l'audio in entrata, e un Command "Replay Store" che visualizza ciò che è stato catturato!
Nel sorgente della form frmOScopio c'è quello che interessa.
Da qui, in Generale è dichiarato un vettoree Tracce&() che andrebbe a contenere i dati registrati.
Ora, se io pongo un tempo max di registrazione in real-time (tipo 1-2 sec per riconoscere una voce, o controllo solo quello durante l'intero processo di acquisizione) e Confronto (datiVettoreA = datiVettoreB) il Vettore con un'altro vettore in cui ho caricato precedentemente il mio piccolo audio registrato (o meglio, carico i dati da un file con i dati del vettore salvato in precedenza e, al partire del programma, lo ricarico con gli stessi)... dovrei aver trovato quello che mi serve, perché nessun dato sarà diverso se il sorgente è lo stesso!!!! :pat:
Ripeto il suono è lo stesso!!!!
Comunque, grazie per gli auguri di buona fortuna! :D:k:
Ultima modifica effettuata da erosmax 05/06/12 9:42
aaa