#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