< -->
Program VoiceTextWavCompiler;{v1.0; beg30.10.2002}
Uses Crt;
type
{Структура заголовка WAV - файла}
tWaveHeader = record
RIFF : array[0..3] of Char;{'RIFF'}
DataLength : LongInt;{р-р файла}
WAVEfmt : array[0..7] of Char;{'WAVEfmt'}
Size : LongInt;{р-р}
PCM : Word;{признак импульсно-кодовой модуляции}
Channels : Word;{число каналов}
DiscFreq : LongInt;{частота дискретизации зв. сигнала}
BytePerSec : LongInt;{число байт в секунду}
UnitLen : Word;{р-р блока данных}
BitSample : Word;{Разрядность выборки}
Extra : Word;{доп. инфо}
Data : array[0..3] of Char;{'data'}
end;
{Более полно}
type
TChar4 = array[0..4] of Char;
TParentChunk = record
RIFF : TChar4;
Size : LongInt;
ID : TChar4;
Offset : LongInt;{смещение раздела data от начала файла}
end;
TChunk = record
ID : TChar4;
Size : LongInt;
Offset : LongInt;{смещение раздела данных от нач. файла}
end;
type
TWaveFormat = record
FormatTag : Word;
Channels : Word;
Frequency : LongInt;
AVByteRate : LongInt;
BlockAlign : Word;
Fidelity : Word;
end;
{type
WavF = record
PC : TParentChunk;
C : TChunk;
WF : TWaveFormat;
end;}
{_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+}
var
S : String;
f : file;
WH : tWaveHeader;
PrCh : TParentChunk;
Chunk : TChunk;
WF : TWaveFormat;
i : Word;
Procedure WCA(C:array of Char; t:Word);
var
i : Word;
begin
for i := 0 to t do Write(C[i]);
WriteLn;
end;
begin
{ Write('Введите имя .WAV файла: ');
ReadLn(S);}
{$I-}
S:='F:/AUDIO/WAV/kiss.wav';
Assign(f,S);
Reset(f,1);
{$I+}
if IOResult<>0 then
begin
Close(f);
WriteLn('IO Error!!!');
Halt;
end;
BlockRead(f, WH, SizeOf(WH));
Close(f);
with WH do
begin
WriteLn('-=_+-=_+-=_+-=_+-=_+-=_+-=_+-=_+-=_+-=_+-=_+-=_+-=_+-=_+');
Write('RIFF: ');
WCA(RIFF, 3);
WriteLn('DataLength: ', DataLength);
Write('WAVEfmt: ');
WCA(WAVEfmt, 7);
WriteLn('Size: ', Size);
WriteLn('PCM: ', PCM);
WriteLn('Channels: ', Channels);
WriteLn('DiscFreq: ', DiscFreq);
WriteLn('BytePerSec: ', BytePerSec);
WriteLn('UnitLen: ', UnitLen);
WriteLn('BitSample: ', BitSample);
WriteLn('Extra: ', Extra);
Write('Data: ');
WCA(Data, 3);
end;
ReadKey;
end.
Назад