Как прослушивать микрофон и определять громкость звука в Delphi 7

#delphi #audio #delphi-7 #microphone

#delphi #Аудио #delphi-7 #микрофон

Вопрос:

Мне нужна программа для отслеживания события, когда вход микрофона становится громче определенного порогового значения. Так что, вероятно, мне нужно постоянно слушать микрофон и каким-то образом измерять амплитуду звука? Возможно ли это сделать в Delphi 7?

Ответ №1:

Я рекомендую вам использовать библиотеку BASS Audio http://www.un4seen.com/bass.html

BASS — это библиотека аудио .. для предоставления разработчикам мощных потоковых функций (MP3 .. OGG ..). Все это в крошечной DLL размером менее 100 КБ.

это очень просто в использовании, как иллюстрирует эта простая минималистичная программа. Он основан на тестировании записи низких частот для Delphi, включенном в сэмплы, поставляемые с BASS. Смотрите это для полного сохранения и воспроизведения записанного звука.

Просто скомпилируйте его и запустите.

 program rec;
uses Windows, Bass;

(* This function called while recording audio *)
function RecordingCallback(h:HRECORD; b:Pointer; l,u: DWord): boolean; stdcall;
 var level:dword; 
 begin
  level:=BASS_ChannelGetLevel(h);
  write(''#13,LoWord(level),'-',HiWord(level),'         ');
  Result := True;
 end;

begin
  BASS_RecordInit(-1);
  BASS_RecordStart(44100, 2, 0, @RecordingCallback, nil);
  Readln;
  BASS_RecordFree;
end.
  

Комментарии:

1. Есть ли у них способ статической привязки к нему в настоящее время?

Ответ №2:

Да, конечно. Волновой звук — это примерно то же самое, амплитуда звуковой волны в каждый момент. Громкость превышает среднеквадратичное значение (root mean square) выборок.

Просто возьмите любую используемую вами аудиотеку, получите данные о волнах и вычислите это значение. Возможно, даже простого скользящего среднего уже достаточно (избавляя вас от среднеквадратичного значения).

Delphi 7 отлично подойдет для этого и поставляется с заголовками mmsystem. Доступны более продвинутые компоненты (некоторое время я использовал библиотеку lakeofsoft), но это может быть излишним, если это ваша единственная операция со звуком.

Комментарии:

1. Спасибо, я, вероятно, буду использовать скользящую среднюю.

Ответ №3:

Я рекомендую вам заглянуть в AudioLab