Newsgroup: it.comp.lang.visual-basic
Titolo: [!] formati audio (per il papero)

Non è solo per lui, ma era lui che aveva posto il quesito.
Il quesito era questo:
<quesito>
Dovrei convertire file audio, normalissimi .WAV, sempre in WAV,
ma con parametri diversi. Lo scopo finale è quello di abbassare
lo spazio su disco (la qualità non interessa, sono registrazioni
voce... va bene anche 1 K/s, anzi sarebbe l'ideale).
Parto dal WAV perché è quello che mi esce registrando da un
modem voice, ma i soli parametri possibili sono 8 o 16 K/s,
e una telefonata può essere anche di mezz'ora. Ora immaginatene
una cinquantina in un giorno[1]... :-(
</quesito>
Ieri sera mi sono ricordato di lavorare in una azienda, che per servizio,
trasferisce file waw da un capo all'altro del mondo (non è proprio così, ma
quasi), e a suo tempo mi hanno dato una infarinatura sui campionamenti per
l'audio.
La faccio lunga per dire che la cosa non è fattibile, per lo meno non nei
termini richiesti: da una serie di prove fatte dalle compagnie telefoniche,
per mantenere l'intelleggibilità del parlato occorre "catturare" le
frequenze dai 400 ai 3400 Hz, arrotondati a 4000 per comodità; la teoria del
campionamento sostiene che, per riprodurre una forma d'onda, deve essere
campionata ad una frquenza almeno doppia di quella più elevata presente nel
segnale da campionare.
Risultato: non puoi scendere sotto i 8KHz, se vuoi mantenere
l'intelleggibilità. E' anche inutile utilizzare frequenze superiori, per
altro, se registri le telefonate, perchè lì viene campionato all'origine a
8K.
Se vuoi ridurre la dimensione dei file devi abbandonare il waw.
Ahug
Sergio

 Non è solo per lui, ma era lui che aveva posto il quesito.
http://www.microsoft.com/windows2000/it/professional/help/default.asp?url=/w
indows2000/it/professional/help/compressing_sound_files.htm
vero!
tra l'altro se spippoli con il registratore di suoni di un win (io ho
sottomano quello di xp)....e vai in file proprietà...
vedi le conversioni che puoi fare sempre rimanendo ad una qualità
intelleggibile.
cmq.
se comprimi qualità telefono
PCM 8Khz 8 bit momo  1 secondo=7KB
mezzora (30*60*7)=12.600KB
se prendi la compressione GSM6.10
8Khz Mono 1secondo=1kb mezzora=1800 Kb
11,025Khz Mono 1 secondo=2Kb mezzora=3600 Kb sembra buono lo stesso no?
Valori simili al GSM con Mpeg-Layer3
il vantaggio è che lo risenti con il registratore di suoni...con mediaplayer
etc etc...e non installi nulla di nuovo
....
Certo che: se sei a fare un programma....metti un controllino mp3 e fatti le
compressioni al volo
...o meglio...per fare il "figo" un Codec Ogg-Vorbis
--
Il Wodkino Nazionale è a : 
www.martek.it
Pagina Vb/Bestiario/Lamer Experience :
http://www.martek.it/go.asp?portamia=2
 ...se cercate bene da qualche
parte c'è anche il forum!

 segnale da campionare.
Sì, ma stai parlando di dati "puliti", poi c'è la compressione :-).
Con la teoria ci ho sbattuto il naso abbastanza anch'io, per altri
motivi... anche per il suono è possibile fare una compressione
sia lossless che lossy, hai presente una bitmap ?
Il registratore di suoni di win, se hai i codec necessari, può fare
un file anche a 1 K/s, per esempio. Certo la qualità non è esaltante,
ma si può fare. Il problema è nella conversione da un file già
esistente.... comunque grazie di tutto, ma ho proprio l'impressione
che lascerò i file come stanno, cioè a 8 K/s; anche, come tu dici
giustamente, per motivi di qualità. Già le dettature arrivano magari
per telefonino, o da qualche cabina in mezzo alla strada, da dentro
uno stadio o simili... se è necessario, preferisco prendere un disco
un po' più grande e andare tranquillo.
Grazie di tutto a te, a Wodka, Gigio e gli altri che mi hanno aiutato.
P.S.: mica ti ricordi come si chiamava quel giornale dove andasti
in gita illo tempore ? Avrei l'ideuzza di chiedere a qualcuno che
magari ci lavora ancora... non sopporto certi dubbi che stuzzicano
la mia curiosità. :-)
P.P.S.: Ora che ci penso, ma il GSM non usa già una compressione
dei dati ? 8-O.
Bye, G.

 ma con parametri diversi
imho, se lo comprimi non è più un wav....
Salutoni
Sergio

 imho, se lo comprimi non è più un wav....
Nonono, il WAV in fondo è un contenitore, i dati internamente possono
essere di qualunque tipo, compressi con uno di vari metodi diversi.
Da quello che ho capito, ci pensa l'ACM, che è ad un livello intermedio,
a gestire la compressione in modo trasparente.
**********************
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/au
dcomp_2rzn.asp
The ACM uses existing driver interface hooks to override the default
mapping algorithm for waveform-audio devices. This allows the ACM
to intercept device-open calls. After a call has been intercepted, the
ACM can perform a variety of tasks to process the audio data, such
as inserting an external compressor or decompressor into the sequence.
The ACM manages the following types of drivers:
Compressor and decompressor (codec) drivers
Format converter drivers
Filter drivers
**********************
Come dicevo, comunque, è solo un discorso accademico, visto che
ho deciso di lasciare le cose come stanno :-))))
Bye, G.