2016-03-08 32 views

回答

1

一種可能的解決方案是使用AVAudioRecorder的音頻電平計量。我從來沒有嘗試過,所以我不確定它會有多準確,或者對背景噪音有多敏感。

我想看看這個https://developer.apple.com/library/ios/documentation/AVFoundation/Reference/AVAudioRecorder_ClassReference/#//apple_ref/occ/instm/AVAudioRecorder/averagePowerForChannel

按文檔,averagePowerForChannel返回

目前的平均功率,單位爲分貝,爲正在錄製的聲音。 0dB的返回值表示滿量程或最大功率;返回值-160 dB表示最小功率(即接近無聲)。

當您開始錄製時,我會將此值採樣一段時間或一兩秒鐘,然後對其進行平均處理,從而爲您提供背景噪音級別。

用戶在說話時,音量應該從此上升。

繼續監視此值,然後當它返回到背景級別中的某個範圍一秒左右時,關閉錄製。

這可能不像Siri那樣準確(可能會進行更多的處理和潛在的語音檢測),但它可能足夠滿足您的需要。

這個挑戰將會解決背景水平和說話量之間的差異以及敏感度 - 如果它們接近,它可能不會很好。