基於SoPC的實時說話人識別控制器

2021-01-10 電子產品世界

1 算法簡介

說話人識別系統主要實現建模及識別兩方面功能。建模功能提取語音的特徵參數並存儲起來形成用戶模板。識別功能提取語音的特徵參數,與模板參數進行匹配,計算其距離。系統框圖如圖1所示。本文採用改進的DTW(Dynamic Time Warping)算法和LPCC(Linear prediction cepstrum coefficients)特徵參數。

1.1 LPCC算法

(1)分幀:語音信號具有短時平穩性[1],因此先將其分幀,再逐幀處理。

(2)有效音檢測:有效音檢測基於短時能量和短時過門限率兩個參數。判決時採取兩級判斷法:若短時能量高於高門限則判為有聲;若低於低門限則判為靜音;若介於兩者之間,則再判斷其過門限率是否高於過門限率門限,若滿足則判為有聲,否則為靜音。

(3)加窗:加窗可濾去不需要的頻率分量,同時有利於減少LPCC算法在幀頭及幀尾處的誤差。本設計採用漢明窗,其表達式如下:


1.2 改進的DTW算法

1.2.1 全局約束

圖2和圖3中,橫軸為測試語音參數,縱軸為模板參數,單位為幀。算法以測試語音為基準逐幀進行。如圖2,傳統的DTW算法中,測試參數長度無法預知時全局約束便無法確定。圖3為改進後的DTW,可在未知測試參數長度的情況下進行全局約束,配合幀同步算法,便於算法的實時處理。

1.2.2 局部約束

得到當前距離後便要進行前向路徑搜索。n=1指定與m=1匹配。從n=2開始,每個交叉點(n,m)可能的前向路徑為(n-1,m)、(n-1,m-1)、(n-1,m-2),選出其中最小者作為當前點(n,m)的前向路徑,並將該點的累加距離和加上其當前距離作為當前點的累加距離。最終在n=N處可得到若干個累加距離,選其最小者為最終匹配結果。

1.3 Matlab仿真

1.3.1 實驗1:對個性信息的識別能力

實驗1的目的在於觀察算法對於話者個性信息的識別能力,實驗用的語音均為各話者對正確詞「開門」的發音,以避免不同單詞帶來的影響。實驗結果如圖4所示,系統的等錯誤率(EER)為0.01,即當錯識率為0.01時錯拒率也為0.01。

1.3.2 實驗2:對語意信息的識別能力

實驗2的目的在於觀察識別算法對於語意的識別能力,實驗用的語音均為同一話者對正確詞及錯誤詞的發音,以避免因不同話者帶來的影響。如圖5所示,在門限為1.25時得到系統的等錯誤率(EER)為0.01。比較實驗1、實驗2的結果可知,算法對語義的識別能力和對話者個性信息的識別能力相近。

1.3.3 實驗3:綜合測試

實驗3綜合考慮了話者的個性信息及語意信息。如圖6所示,在門限為1.4時,得到系統的等錯誤率為0.01,也即此時系統的正確識別率為99%,同時存在1%的錯誤識別率。

2 SoPC系統構建

(1)CPU設置。NiosII core選定為NiosII/f。使能嵌入式硬體乘法器。復位地址設為cfi_flash,異常向量地址設定為ssram_2M,在custom instructions中添加用戶自定義指令floating Point Hardware。

(2)定時器設置。本設計使用了兩個定時器。Timer用於產生內部中斷採集語音樣點,設其計時周期為125 μs(對應採樣率8 kHz)。Timer_stamp用於插入時間標籤,定時周期採用默認值。

(3)其他外設。NiosII核中還包含以下外設:片上RAM/ROM、FLASH、SDRAM、SSRAM、按鍵、開關、LED、音頻模塊、七段數碼管、LCD。

3 軟體流程

總體工作流程如圖7所示。系統首先初始化,然後讀出模板數據,等待用戶按下按鍵。在此期間,用戶應設置好系統工作模式(建模或識別)及話者代碼。然後按下按鍵開始以中斷方式採集語音,並運行函數主體。

識別部分流程如圖8所示。函數首先判斷語音是否已經採集完畢及LPCC算法是否已經進行到最後一幀,若同時滿足則結束運算,否則繼續運行。若當前幀為有效音,則計算出其LPCC,並調用DTW子函數,針對各模板分別計算距離得分。運算完所有語音幀後,便可得到測試語音對各模板的最終得分,取其最大者記為當次得分。若該得分大於得分門限,則識別通過;否則予以拒絕。


建模部分流程的前半部分與識別過程類似,不同之處在於建模過程只調用了LPCC算法。算法完成後,系統將LPCC矩陣寫入對應的Flash地址空間存儲。

4 軟硬體協同設計與優化

4.1 軟體設計與優化

(1)將數據緩存至SDRAM。最初的程序設計中使用數組存儲大型變量,後來改為將這些數據緩存於SDRAM中。改進後,在板運行速度無明顯改變,但NiosII軟體的運行速度及穩定性得到了提高。

(2)用float數據類型代替double。最初的程序大量使用了雙精度數據類型,但後來發現單精度浮點型已經可以滿足要求,因此將數據類型改為單精度浮點型(float),使得程序運行速度提升了一倍。

(3)用指針方式訪問數組。改用指針的方式訪問數組改善了程序的執行效率,運行速度有一定提升。

(4)用讀表法獲取漢明窗函數。最初的程序是通過運算公式的方式得到窗函數的各個樣點值的,後改用讀表法,使得加漢明窗這一步驟耗時減少了98.7%,整個LPCC運算耗時因此減少了59.3%。

(5)語音數據存儲為float類型。最初的設計中,系統採集到原始語音數據後直接將其存儲起來,後來改為將數據解碼後再存儲,使得LPCC中取語音部分的時間由888 μs降至98μs。

4.2 硬體設計與優化

(1)用定時器中斷方式採集語音。最初的設計中,系統必須在採集完所有語音數據之後才能對其進行處理。後改用中斷方式採集語音,則可實現每採集滿一幀語音數據便進行處理,極大地提升了處理速度。

(2)添加用戶自定義浮點指令。語音信號處理過程涉及大量單精度浮點型數據的運算,因此在CPU中添加浮點指令。加入浮點指令後,系統耗時降低了90%以上。

本設計在算法上充分利用了DTW算法的特點,既能識別語音內容又能區分說話人,很好地完成了文本有關的說話人識別功能。同時對識別算法進行幀同步處理,為算法的實時實現打下基礎。本設計在實現時採用軟硬體協同設計方法,在軟體和硬體上進行設計和優化,使得設計有很好的實時性。

作品的實際測試情況是:選取門限為1.5時,系統的錯識率可降至0%,此時正確識別率為90%,還有10%的拒識。識別時系統的響應時間是8.5 ms。

相關焦點

  • 說話人語音特徵子空間分離及識別應用
    目前說話人識別的主要方法一般通過在語音特徵觀察空間建立說話人模型進行,如基於VQ的碼本模型識別方法、基於GMM模型的識別方法以及其他一些方法,這些方法大都利用了說話人語音特徵的統計特性。但是,說話人識別應用中存在的兩個主要問題是:(1)由於語音特徵的時變性,模型訓練時期和實際識別時期語音特徵發生變化而導致識別性能的下降,而目前這些方法只能在一定程度上處理這種變化;(2)實際應用中往往需要能通過較短的語音及時識別說話人身份,但目前這些方法一般需要輸入3秒以上的語音才能得到較高的識別率。
  • 基於DSP的語音識別計算器電路設計
    但是其基本的操作沒有發生變化,依然是運用手指操作,對於需要進行實時數字計算的一些特殊人群(殘疾人士)或是在一些特殊場合在無法手動操作計算器的情況下,用加入了語音識別模塊的計算器來進行實時數字計算就有相當的必要。 語音識別技術是人機最自然、最簡潔的交流方式,它就是讓機器能夠自動識別並理解說話人要表達的意思,將語音信號轉變為正確的文本或者命令的高科技技術。
  • 基於實時光譜分析的智能飛秒鎖模脈衝控制
    其中,基於非線性偏振演化(Nonlinear polarization evolution, NPE)的被動鎖模因其簡單的結構和優異的脈衝性能備受親睞。通過調節雷射腔內的偏振控制器即可實現鎖模,但是,手動調節偏振控制器實現鎖模耗時較長,一旦環境擾動極易失鎖且難以恢復,限制了其在工業界的大幅應用。
  • 基於LPC1114的智能節能LED檯燈控制器設計
    摘要:本設計採用NXP基於ARM Cortex M0的MCU--LPC1114作為核心控制器,利用其豐富的片內外設,通過環境光線傳感器和超聲波測距傳感器實時採集環境光線強度和用戶到LED檯燈的使用距離,並與通過用戶按鍵設置的
  • 基於CPLD的鍵盤控制器設計
    在單片機應用系統中,利用鍵盤接口輸入數據,是實現現場實時調試、數據調整和各種參數設置最常用的方法。單片機的外圍鍵盤擴展電路有多種實現方式,例如直接利用單片機的I/O接口,或者採用8255A接口晶片,就可以實現外圍鍵盤的擴展功能。但是,在這些方法中,鍵盤擴展電路需要佔用單片機的資源對按鍵進行監控和處理,這對要求高實時性處理的單片機系統是不容易實現的。
  • 基於Cotex-M3內核的智能低壓斷路器控制器設計
    摘要:文章介紹了基於Cotex—M3內核的32位高性能微控制器在智能低壓斷路器控制器的硬體及軟體設計中的應用。本智能控制器硬體採用信號變換、波形變換法;軟體採用微分法。因此,本智能控制器軟體採用基於μC/OS—III內核的實時作業系統平臺,它是一個可擴展的、可固化的、搶佔式的實時內核,它管理的任務個數不限,其功能包括資源管理、事件同步、內部任務交流、運行時測量運行性能、直接發送信號量或消息給任務、任務能同時等待多個信號量或消息隊列等。
  • 產品名稱:24/12v自動識別15a太陽能控制器
    產品名稱: 太陽能控制器  產品型號:TC2015(24/12v自動識別  6a,10a,12a,15a)> 產品描述:太陽能控制器實時採集電池電壓、電池溫度、通過精確地控制蓄電池組的充電過程,能夠幫助用戶延長蓄電池的使用壽命,最大限度發揮蓄電池的性能
  • 基於單片機的太陽能路燈控制器設計方案
    本文介紹基於單片機的太陽能路燈控制器的方案設計, 對12 V 和24 V 蓄電池可自動識別, 可實現對蓄電池的科學管理, 指示蓄電池過壓、欠壓等行狀態, 具有兩路負載輸出, 每路負載額定電流可達5 A, 兩路負載可以隨意設置為同時點亮、分時點亮以及單獨定時等工作模式, 同時具有負載過流、短路保護功能; 具有較高的自動化和智能化水平。
  • 基於STM32的永磁同步電機伺服控制器設計
    使用意法半導體(ST)的STM32F407晶片不但在硬體上大幅減小了外部器件的種類及數量,降低了生產成本,提高了產品的可靠性;而且提供了通用外設庫、DSP算法庫、交流永磁電機(Permanent Magnet Synchronous Motor以下簡稱:PMSM)的場定向(Field Oriented Control以下簡稱:FOC)庫,圖形化晶片外設配置軟體Microxplorer和支持實時變量監控及可視化調試的軟體
  • 基於DSP的語音識別系統的實現及分析
    針對發音人範圍來分,分為特定人語音識別、非特定人語音識別、自適應語音識別。  本文主要研究非特定人小詞彙量連續語音實時識別系統。  1.1 語音識別系統  語音識別本質上是一種模式識別的過程,即未知語音的模式與已知語音的參考模式逐一進行比較,最佳匹配的參考模式被作為識別結果。
  • 基於Julius的機器人語音識別系統構建
    只需要對幾十個字或詞的命令行進語音識別,便可使得原本需要手工操作的工作由語音輕鬆完成。本文針對現有機器人平臺,設計一個非特定人的孤立詞語音識別系統。  1 語音識別原理及JuliUS簡介  1.1 基於HMM的語音識別原理  語音識別系統是一種模式識別系統,系統首先對語音信號進行分析,得到語音的特徵參數,然後對這些參數進行處理,形成標準的模板。這個過程稱為訓練或學習。
  • 基於射頻識別技術的智能電能表的設計
    將射頻識別(RFID)技術應用到電量信息的傳輸、更好地體現RFID免接觸、無源、信息安全等優勢。射頻識別技術是一種非接觸式自動識別技術,是通過射頻信號來白動識別門標對象並獲取相關數據。基本的RFID系統是由電子標答(射頻卡)、閱讀器及應用支撐軟硬體二部分組成。RFTD標籤由晶片和天線組成,何個標籤都具有唯一的電子編碼。根據發送射頻信號的方式不同。
  • 利用MEMS麥克風陣列定位並識別音頻或語音信源的技術方案
    目前業界正在使用MEMS麥克風陣列子系統開發嵌入式音頻定位、自動語音識別和自動說話人識別解決方案,聲音識別定位是我們識別確認他人身份的基本功能,當我們聽到有人講話時,會將頭轉向說話人,查看說話人。  音源定位是自動語音識別和自動說話人識別系統的一個重要環節,對於提高語音識別系統的性能至關重要。
  • 基於TMS320F2812的逆變電源控制器設計
    首先介紹了逆變電源技術的發展現狀,在介紹了晶片的特性之後,詳細分析了基於TMS320F2812逆變電源控制器的硬體和軟體設計,並對仿真結果進行分析總結。結果表明,該逆變電源能夠得到穩定的正弦波輸出。文中研製的逆變電源控制系統以TMS320F2812作為控制核心,它是一種支持實時仿真的32位微控制器,內部具有UART、SCI總線、SPI總線、PWM、定時器、ADC、CAN總線控制器等眾多外圍部件,功能強大。主要實現PWM產生、AD轉換、DA轉換、SCI、開關量檢測、繼電器驅動以及其他信號控制。
  • 基於嵌入式WinCE的CAN總線控制器驅動設計
    嵌入式作業系統(:Real-time Embedded OperatingSystem,RTOs或EOs)作為一種實時的、支持嵌入式系統應用的作業系統軟體,成為嵌入式系統(包括硬、軟體系統)極為重要的組成部分,通常包括與硬體相關的底層驅動軟體、系統內核、設備驅動接口、通信協議、圖形界面、標準化瀏覽器Browser等。
  • 基於SOPC的SPWM脈衝發生器的實現
    傳統的SPWM驅動晶片速度慢、不夠靈活,存在著電路設計複雜、體積大、抗幹擾能力差、設計周期長等缺點,對於許多有特殊要求的場合,由專用晶片很難滿足實際的要求,因此,本文採用Ahera公司的EP2C35F672C8N開發一種基於可編程片上系統的SPWM脈衝波形電路,SOPC技術將微處理器和SP-WM波形電路整合到一塊FPGA器件當中。
  • 基於FPGA的移動目標實時定位跟蹤系統
    打開APP 基於FPGA的移動目標實時定位跟蹤系統 工程師3 發表於 2018-04-20 15:50:00 1 背景知識 如圖
  • 基於SOPC的高精度超聲波雷達測距系統設計
    編者按:本文基於NIOS II軟核處理器和卡爾曼濾波算法,利用FPGA平臺,超聲波傳感器和LCD液晶顯示系統,設計了一種高精度超聲波雷達測距系統。以這種方法設計的SOPC系統,克服了傳統超聲波雷達測距系統噪聲幹擾過大的問題,提高了測距系統的測量精度。
  • 基於Transformer的高效、低延時、流式語音識別模型
    從場景上,語音識別可以分為流式語音識別和非流式語音識別。非流式語音識別(離線識別)是指模型在用戶說完一句話或一段話之後再進行識別,而流式語音識別則是指模型在用戶還在說話的時候便同步進行語音識別。流式語音識別因為其延時低的特點,在工業界中有著廣泛的應用,例如聽寫轉錄等。
  • 谷歌更新地圖應用AR實時視圖功能 提升基於視覺識別的AR定位準確性
    近期據外媒報導,谷歌更新地圖應用的AR實時視圖(Live View)功能,旨在提升基於視覺識別的AR定位準確性。  通常,當你打開Live View模式後,可通過掃描周圍建築、路標等目標來進行定位,幫助谷歌地圖識別你前面的方向。