簡體   English   中英

在C#中使用復數計算fft

[英]calculating fft with complex number in c#

我使用此公式來獲取信號的頻率,但我不明白如何實現具有復數的代碼? 與Math.Sqrt(-1)相關的公式中存在“ i”。 如何使用NAduio庫將此公式編碼為C#信號?

在此處輸入圖片說明

實際上,很多語言都為此提供了內置的庫。 此鏈接是C#.NET中的一個示例。 這為您提供了如何設置語音識別程序的逐步指南。 它還使您擺脫了解析某些現象等音頻的低級細節(坦白地說,對於其中存在的庫數量沒有意義,除非您希望編寫高度優化的版本)。

如果您想回到基本水平,則:

您將要使用某種形式的概率模型,例如隱馬爾可夫模型(HMM)。 這將允許您測試用戶對一組模型說的內容,即允許每個用戶說的單詞。

此外,您還希望將音頻波形轉換為程序可以更容易解釋的格式。 諸如快速傅立葉變換(FFT)或小波變換(CWT)之類的東西。

步驟將是:

  1. 取得音訊
  2. 消除背景噪音
  3. 通過FFT或CWT進行轉換
  4. 檢測峰值和音頻的其他功能
  5. 將這些功能與HMM進行比較
  6. 選擇具有約閾值的最佳結果的HMM。

當然,這需要您事先使用正確的單詞來訓練HMM。

但是,這是一個棘手的問題,您將必須使用ASR框架來實現。 我使用Sphinx4做過一些復雜的事情(〜100個單詞)。 您也可以使用HTK。

通常,您需要做的是:

  • 寫下您想識別的所有單詞
  • 確定命令的語法,例如(方向)(數量)

然后選擇一個框架,獲取聲學模型,生成與該框架兼容的字典和語言模型。 然后將框架集成到您的應用程序中。

我希望我已經提到了您需要做的所有重要事情。 您可以單獨搜索它們,也可以轉到所選框架的教程。

就語音識別而言,您的任務相對簡單,如果完成任務,您將獲得良好的結果。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM