2013-07-16 66 views
0

大家下午好,停止錄製時,沒有人說話

我有一個Windows應用程序,開始記錄上按下啓動按鈕,停止錄製的停止按鈕點擊停止錄製,當我們拔掉麥克風其工作正常,但我的新要求是當我按下開始按鈕錄製開始時,如果我幾分鐘不說話,錄製應該停止。我無法谷歌這個問題。 我很困擾這個問題任何人都可以幫助我嗎?

這裏是開始時的示例代碼和停止錄製

uint hr = MFRecWrapper.StartRecording(microPhoneName.Trim(), this.fileName.Trim(), this.bitSamplingBitrate, this.avgBytesWrittenPerSecond, this.Handle); 
uint hr = MFRecWrapper.StopRecording(); 

預先感謝您.. :)

+0

您需要在錄音時分析音頻。看起來您正在使用自定義包裝類訪問麥克風。您是否能夠在錄製過程中使用該課程來提取錄製的音頻? (或者更好,只提取你需要分析的部分) –

回答

0

您需要分析音頻輸入流。有一些簡單的技術可以做到這一點,還有一些更先進的技術。

作爲首發,您可以簡單地修復響度閾值。如果您的輸入響度低於特定時間,請停止錄製。 更先進和恕我直言更好的方法是計算您的輸入信號的信噪比,並將其作爲您的標準。

總結:這是一項相當艱鉅的任務。開源應用程序Mumble已實現了一些功能。我認爲開始在那裏獲得靈感是個好主意。

0

我不知道你的問題真正的答案,但我想你可以用它做記憶流(正如我們可以說,在保存它之前在內存中),你可以通過數據流方法以字節爲單位訪問和檢查是否沒有變化或變化較小(其他聲音或呼吸的聲音比人聲低)。然後結束關閉recording.MemoryStream有一些真正有用的方法ı認爲這將幫助你可以試試看