2013-06-26 54 views
3

我有一些通過麥克風的音頻輸入。我將它錄製在Audacity中,看起來如下所示。如何實時處理音頻?

Audio waveform

我想實時處理這段音頻。我主要想這樣做:

  1. 查看實時音頻幅度與時間的關係圖。

  2. 根據事件執行一些操作,如看到類似於某種預定義波形的波形,然後調用函數。
    在圖像的上半部分,您可以看到四個干擾。我希望每當看到這種干擾時,腳本應該調用一個函數,否則,當信號幾乎是直的時候,不要做任何事情,只是繼續分析信號。

是否有任何Python模塊或C庫可以讓我做到這一點?

回答

0

賠率是PythonInMusic有你要找的東西,但它是相當難以判斷何時

0

如果我們在這裏談論的語音識別,可以將您的目標任務是「基於一些事情執行某些操作」看看dragonfly被描述爲

一個Python包,它提供了一個高層次的對象模型,並允許其 用戶輕鬆編寫腳本,宏和方案使用語音識別 。

pyspeech

speech.py​​是一個Python模塊,提供了一個乾淨的界面,以 的Windows的語音識別和文本到語音轉換功能。這是非常容易使用的程序,需要監聽特定的短語 或一般的演講,或需要發言。

不管怎麼說,這兩個Python模塊看起來像實時處理音頻,可以給你一些提示...

0

對於點可以使用Pure Data

點是非常不具體你可以嘗試用PythonInMusic你的運氣

2

我會推薦給讓自己推出第一個FFT(梅森Hemmel答案之後),這將使你能夠對音頻的處理進行實時分析和控制。

1#正向FFT會給你在時域內的幅度,從你的頻域(音頻數據本身)轉換爲 2#根據時間/頻率內的幅度模式 - 你可以決定調用額外的線程或函數;例如 - 當你在某個頻率箱或時隙上沒有振幅時 - 做一些事情,否則跳過。

有很多開源C庫可以對音頻數據執行FFT,比如http://aubio.org/https://github.com/zaphire/Monocle-Engine/blob/master/Core/Audio/fft.cpp還有很多。但在繼續之前,一定要讓你瞭解FFT和聲音分析。我個人沒有使用這些C庫中的任何一個 - 而是在iOS音頻分析方面做了很多工作,但工作原理應該是類似的

+4

獲取FFT與OP問題有關。 FFT是許多算法的基礎,可能是OP的一個很好的起點。 – Paul