原创 如何在嵌入式Linux上開發一個語音通信解決方案

開發一個語音通信解決方案是一個軟件項目。既然是軟件項目,就要有相應的計劃:有多少功能,安排多少軟件工程師去做,這些工程師在這一領域的經驗如何,是否需要培訓,要多長時間做完,中間有幾個主要的milestone等。我們曾經四個人花了近一年時間

原创 webRTC中音頻相關的netEQ(二):數據結構

上篇(webRTC中音頻相關的netEQ(一):概述)是netEQ的概述,知道了它主要是用於解決網絡延時抖動丟包等問題提高語音質量的,也知道了它有兩大單元MCU和DSP組成。MCU 主要是把從網絡收到的語音RTP包放進packet buf

原创 語音識別中喚醒技術調研

上篇博客(語音識別傳統方法(GMM+HMM+NGRAM)概述)說到我們team要做語音識別相關的項目,而我們公司的芯片是用在終端上的,即我們要做終端上的語音識別。由於目前終端(如手機)上的CPU還不足夠強勁,不能讓語音識別的各種算法跑在終

原创 音頻處理之回聲消除及調試經驗

本文講的回聲(Echo)是指語音通信時產生的回聲,即打電話時自己講的話又從對方傳回來被自己聽到。回聲在固話和手機上都有,小時還可以忍受,大時嚴重影響溝通交流,它是影響語音質量的重要因素之一。可能有的朋友要問了,爲什麼我打電話時沒有聽見自己

原创 音頻開發基礎知識簡介

在現實生活中,音頻(audio)主要用在兩大場景中:語音(voice)和音樂(music)。語音主要用於溝通通信,如打電話,現在由於語音識別的發展,人機語音交互也是語音的一個應用,目前正在風口上,好多大廠都推出了智能音箱。音樂主要用於欣賞

原创 音頻的採集和播放

音頻的採集和播放主要由專門的codec芯片完成,主流的codec芯片廠商有Circus Logic、Wolfson等。採集時codec芯片通過A/D採樣把聲音的模擬信號轉換成數字信號並通過I2S總線送給CPU處理,播放時CPU把處理好的數

原创 音頻軟件開發中的debug方法和工具

音頻軟件開發同其他軟件開發一樣,都需要去調試。音頻軟件調試同其他軟件調試方法有相同的地方,也有不同的地方,同時調試時還需要藉助一些專門的工具,有了這些方法和工具,就能快速的定位問題和解決問題。下面我們就談談這些方法和工具。 1,方法 1)

原创 我們基於kaldi開發的嵌入式語音識別系統升級成深度學習啦

先前的文章《三個小白是如何在三個月內搭一個基於kaldi的嵌入式在線語音識別系統的 》說我們花了不到三個月的時間搭了一個基於kaldi的嵌入式語音識別系統,不過它是基於傳統的GMM-HMM的,是給我們練手用的,通過搭這個系統我們累積了一定

原创 開篇

從事音頻軟件開發10+年,在不同的操作系統(linux/android/ios)下開發過多款產品,主要有通信設備、通信終端、無線音箱、音頻類APP等,涉及到音頻的多個模塊:音頻驅動、音頻前後處理、codec及其優化、音頻傳輸等。平時工作中

原创 嵌入式音頻軟件的架構

嵌入式產品中語音通信和音樂播放的軟件架構是有差別的,這裏還是把這兩種case分開來講。 1, 語音通信 語音通信的軟件架構通常如下: 語音發送時由codec芯片採集到語音的模擬信號轉換成PCM數據然後通過I2S總線發送給CPU(這是音頻

原创 機器學習中梯度下降法原理及用其解決線性迴歸問題的C語言實現

本文講梯度下降(Gradient Descent)前先看看利用梯度下降法進行監督學習(例如分類、迴歸等)的一般步驟: 1, 定義損失函數(Loss Function) 2, 信息流forward propagation,直到輸出端 3,

原创 三個小白是如何在三個月內搭一個基於kaldi的嵌入式在線語音識別系統的

前面的博客裏說過最近幾個月我從傳統語音(語音通信)切到了智能語音(語音識別)。剛開始是學語音識別領域的基礎知識,學了後把自己學到的寫了PPT給組內同學做了presentation(語音識別傳統方法(GMM+HMM+NGRAM)概述)。一段

原创 以kaldi中的yesno爲例談談transition

在基於GMM-HMM的傳統語音識別裏,比音素(phone)更小的單位是狀態(state)。一般每個音素由三個狀態組成,特殊的是靜音(SIL)由五個狀態組成。這裏所說的狀態就是指HMM裏的隱藏的狀態,而每幀數據就是指HMM裏的觀測值。每個狀

原创 機器學習中K-means聚類算法原理及C語言實現

本人以前主要focus在傳統音頻的軟件開發,接觸到的算法主要是音頻信號處理相關的,如各種編解碼算法和回聲消除算法等。最近切到語音識別上,接觸到的算法就變成了各種機器學習算法,如GMM等。K-means作爲其中比較簡單的一種肯定是要好好掌握

原创 基於WFST的語音識別解碼器

學習語音識別有些時間了。老闆要求我們基於Kaldi搭一個語音識別系統,在設備上通過MIC講話,連着設備的PC的console上就能基本實時顯示出講話的內容。由於我們都是小白,剛開始可以要求低些,就用傳統的GMM-HMM,能實現孤立詞識別就