2010-07-30 62 views
3

當音量達到特殊水平時,我已經有'開始語音錄音' 但它有一個缺點,當它開始錄音時,它已經錯過了1/2秒左右 當說一句,將錯過第一個字。iPhone開始通過語音錄音

任何想法(最好的例子)。

可以說,我開始第一次聽到,並得到peakpower,平均,低通

[recorder updateMeters]; ALPHA = 0.05; 
peakPowerForChannel = pow(10, (0.05 * [recorder peakPowerForChannel:0])); 
averagePowerForChannel = pow(10, (0.05 * [recorder averagePowerForChannel:0])); 
lowPassResults = ALPHA * peakPowerForChannel + (1.0 - ALPHA) * lowPassResults; 
averagePassResults = ALPHA * averagePowerForChannel + (1.0 - ALPHA) * averagePassResults; 

比我看看如果它足夠響亮記錄

if (peakPowerForChannel > 0.08f)) -> start recording 

,如果它小於值停止

(peakPowerForChannel < 0.01f) -> stop record, start listening again 

現在我發現最好是聽的peakpower,而平均。但仍然不好。 我也想過所有的時間都有一種臨時記錄,當峯值足夠高時,我可以從現在開始-2秒。類似的東西,但在這裏我不知道如何去實現。因此,歡迎任何實際的建議。

感謝克里斯

+0

hi @christian muller我有同樣的問題。如果你發現任何解決方案,你可以與我分享..... [email protected] – Johnykutty 2012-03-15 16:50:14

回答

0

就像你說的,持續錄製簡短的1/2S塊,當達到功率水平和不確定的記錄開始無限期其擴大。錄音停止時,應該包括丟失的1/2s開頭。

+0

理論上我知道,但如何實現?現在我只有 \t recorder = [[AVAudioRecorder alloc] initWithURL:RecordUrlPfad settings:settings error:&error]; 因此,我將如何緩衝以及以後如何作爲音頻文件提取:)任何來源都將有所幫助 – 2010-07-30 19:41:53