Šta je novo?

Audio komponente za Delphi

=Ivan=

Čuven
Učlanjen(a)
15.12.2003
Poruke
227
Poena
620
Da li neko zna gde mogu da downloadujem komponente za delphi koje ce mi omoguciti da vrsim komparaciju 2 Audio wave fajla. Tacnije njihov wave form, frekvenciju.

Ideja je da to bude koriscenu u nekom programu koji treba da prepozna Govorne komande.
 
Poslednja izmena:
Ja za nesto tako ne znam, ali za raw wave-ove nije tesko visiti komparaciju na najnizem nivou. Dakle, prvih 44 bajtova je zaglavlje u kome je opisan broj kanala, frekvencija itd. (detalje potrazi na googlu), a iza toga je cist PCM.
 
Da li mogao da mi das neke osnovne smernice za analizu “standardnog PCM fajla” . Ili barem neki link do koda koji moze da mi pomogne .

DA li su informacije u headeru u hexdecimalnom obliku? Kako da analiziram hex podatke u Delphi-u ? Treba li da napravim funkciju za tranformaciju Hex->Integer?
 
recimo:

Kod:
procedure WriteWavHeader(AFileStream: TFileStream; len: Cardinal);
type
  PWAVHDR = ^WAVHDR;
  WAVHDR = packed record
    riff: array[0..3] of Char; {* must be "RIFF"                *}
    len: DWord; {* #bytes + 44 - 8               *}
    cWavFmt: array[0..7] of Char; {* must be "WAVEfmt"             *}
    dwHdrLen: DWord;
    wFormat: Word;
    wNumChannels: Word;
    dwSampleRate: DWord;
    dwBytesPerSec: DWord;
    wBlockAlign: Word;
    wBitsPerSample: Word;
    cData: array[0..3] of Char; {* must be "data"               *}
    dwDataLen: DWord; {* #bytes                       *}
  end;
var
  wav: WAVHDR;
begin
  wav.riff := 'RIFF';
  wav.len := len + 44 - 8;
  wav.cWavFmt := 'WAVEfmt ';
  wav.dwHdrLen := 16;
  wav.wFormat := 1;
  wav.wNumChannels := 2;
  wav.dwSampleRate := 44100;
  wav.dwBytesPerSec := 44100 * 2 * 2;
  wav.wBlockAlign := 4;
  wav.wBitsPerSample := 16;
  wav.cData := 'data';
  wav.dwDataLen := len;
  AFileStream.Write(wav, SizeOf(WAVHDR));
end;

E sad, ne znam da li se PCM zapisuje kao big ili little endian, ali to ces morati sam da potrazis :)
 
Nazad
Vrh Dno