国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

目錄
語(yǔ)音識(shí)別工作原理簡(jiǎn)介
選擇合適的python語(yǔ)音識(shí)別包
安裝SpeechRecognition
識(shí)別器類
音頻文件的使用
英文的語(yǔ)音識(shí)別
噪音對(duì)語(yǔ)音識(shí)別的影響
麥克風(fēng)的使用
中文的語(yǔ)音識(shí)別
小范圍中文識(shí)別
語(yǔ)音合成
首頁(yè) 后端開(kāi)發(fā) Python教程 Linux下怎么用python實(shí)現(xiàn)語(yǔ)音識(shí)別功能

Linux下怎么用python實(shí)現(xiàn)語(yǔ)音識(shí)別功能

May 11, 2023 am 08:04 AM
linux python

語(yǔ)音識(shí)別工作原理簡(jiǎn)介

語(yǔ)音識(shí)別源于 20 世紀(jì) 50 年代早期在貝爾實(shí)驗(yàn)室所做的研究。早期語(yǔ)音識(shí)別系統(tǒng)僅能識(shí)別單個(gè)講話者以及只有約十幾個(gè)單詞的詞匯量?,F(xiàn)代語(yǔ)音識(shí)別系統(tǒng)已經(jīng)取得了很大進(jìn)步,可以識(shí)別多個(gè)講話者,并且擁有識(shí)別多種語(yǔ)言的龐大詞匯表。
語(yǔ)音識(shí)別的首要部分當(dāng)然是語(yǔ)音。通過(guò)麥克風(fēng),語(yǔ)音便從物理聲音被轉(zhuǎn)換為電信號(hào),然后通過(guò)模數(shù)轉(zhuǎn)換器轉(zhuǎn)換為數(shù)據(jù)。一旦被數(shù)字化,就可適用若干種模型,將音頻轉(zhuǎn)錄為文本。
大多數(shù)現(xiàn)代語(yǔ)音識(shí)別系統(tǒng)都依賴于隱馬爾可夫模型(HMM)。其工作原理為:語(yǔ)音信號(hào)在非常短的時(shí)間尺度上(比如 10 毫秒)可被近似為靜止過(guò)程,即一個(gè)其統(tǒng)計(jì)特性不隨時(shí)間變化的過(guò)程。
許多現(xiàn)代語(yǔ)音識(shí)別系統(tǒng)會(huì)在 HMM 識(shí)別之前使用神經(jīng)網(wǎng)絡(luò),通過(guò)特征變換和降維的技術(shù)來(lái)簡(jiǎn)化語(yǔ)音信號(hào)。也可以使用語(yǔ)音活動(dòng)檢測(cè)器(VAD)將音頻信號(hào)減少到可能僅包含語(yǔ)音的部分。
幸運(yùn)的是,對(duì)于 Python 使用者而言,一些語(yǔ)音識(shí)別服務(wù)可通過(guò) API 在線使用,且其中大部分也提供了 Python SDK。

選擇合適的python語(yǔ)音識(shí)別包

PyPI中有一些現(xiàn)成的語(yǔ)音識(shí)別軟件包。其中包括:
apiai
google-cloud-speech
pocketsphinx
SpeechRcognition
watson-developer-cloud
wit
一些軟件包(如 wit 和 apiai )提供了一些超出基本語(yǔ)音識(shí)別的內(nèi)置功能,如識(shí)別講話者意圖的自然語(yǔ)言處理功能。其他軟件包,如谷歌云語(yǔ)音,則專注于語(yǔ)音向文本的轉(zhuǎn)換。
其中,SpeechRecognition 就因便于使用脫穎而出。
識(shí)別語(yǔ)音需要輸入音頻,而在 SpeechRecognition 中檢索音頻輸入是非常簡(jiǎn)單的,它無(wú)需構(gòu)建訪問(wèn)麥克風(fēng)和從頭開(kāi)始處理音頻文件的腳本,只需幾分鐘即可自動(dòng)完成檢索并運(yùn)行。

安裝SpeechRecognition

SpeechRecognition 兼容 Python2.6 , 2.7 和 3.3 ,但若在 Python 2 中使用還需要一些額外的安裝步驟。大家可使用 pip 命令從終端安裝 SpeechRecognition:pip3 install SpeechRecognition

安裝完成后可以打開(kāi)解釋器窗口進(jìn)行驗(yàn)證安裝:

Linux下怎么用python實(shí)現(xiàn)語(yǔ)音識(shí)別功能

注:不要關(guān)閉此會(huì)話,在后幾個(gè)步驟中你將要使用它。
若處理現(xiàn)有的音頻文件,只需直接調(diào)用 SpeechRecognition ,注意具體的用例的一些依賴關(guān)系。同時(shí)注意,安裝 PyAudio 包來(lái)獲取麥克風(fēng)輸入

識(shí)別器類

SpeechRecognition 的核心就是識(shí)別器類。
Recognizer API 主要目是識(shí)別語(yǔ)音,每個(gè) API 都有多種設(shè)置和功能來(lái)識(shí)別音頻源的語(yǔ)音,這里我選擇的是recognize_sphinx(): CMU Sphinx - requires installing PocketSphinx(支持離線的語(yǔ)音識(shí)別
那么我們就需要通過(guò)pip命令來(lái)安裝PocketSphinx,在安裝過(guò)程中也容易出現(xiàn)一大串紅色字體的錯(cuò)誤。

音頻文件的使用

下載相關(guān)的音頻文件保存到特定的目錄(直接保存到ubuntu桌面)
注意:
AudioFile 類可以通過(guò)音頻文件的路徑進(jìn)行初始化,并提供用于讀取和處理文件內(nèi)容的上下文管理器界面。
SpeechRecognition 目前支持的文件類型有:

  • WAV: 必須是 PCM/LPCM 格式

  • AIFF

  • AIFF-CFLAC: 必須是初始 FLAC 格式;OGG-FLAC 格式不可用

英文的語(yǔ)音識(shí)別

在完成以上基礎(chǔ)工作以后,就可以進(jìn)行英文的語(yǔ)音識(shí)別了。
(1)打開(kāi)終端
(2)進(jìn)入語(yǔ)音測(cè)試文件所在目錄(博主的是 桌面)
(3)打開(kāi)python解釋器
(4)按照下圖輸入相關(guān)命令

Linux下怎么用python實(shí)現(xiàn)語(yǔ)音識(shí)別功能

最后就可以看到語(yǔ)音轉(zhuǎn)文字的內(nèi)容(this they’ll smell …),其實(shí)效果還是很不錯(cuò)的!因?yàn)槭怯⑽模⑶覜](méi)有噪音。

噪音對(duì)語(yǔ)音識(shí)別的影響

噪聲在現(xiàn)實(shí)世界中確實(shí)存在,所有錄音都有一定程度的噪聲,而未經(jīng)處理的噪音可能會(huì)破壞語(yǔ)音識(shí)別應(yīng)用程序的準(zhǔn)確性。
通過(guò)嘗試轉(zhuǎn)錄效果并不好,我們可以通過(guò)嘗試調(diào)用 Recognizer 類的adjust_for_ambient_noise()命令。

麥克風(fēng)的使用

若要使用 SpeechRecognizer 訪問(wèn)麥克風(fēng)則必須安裝 PyAudio 軟件包。
如果使用的是基于 Debian的Linux(如 Ubuntu ),則可使用 apt 安裝 PyAudio:sudo apt-get install python-pyaudio python3-pyaudio安裝完成后可能仍需要啟用 pip3 install pyaudio ,尤其是在虛擬情況下運(yùn)行。
在安裝完pyaudio的情況下可以通過(guò)python實(shí)現(xiàn)語(yǔ)音錄入生成相關(guān)文件。
pocketsphinx的使用注意:
支持文件格式:wav
音頻文件的解碼要求:16KHZ,單聲道
利用python實(shí)現(xiàn)錄音并生成相關(guān)文件程序代碼如下:

from pyaudio import PyAudio, paInt16
import numpy as np
import wave
class recoder:
     NUM_SAMPLES = 2000   
     SAMPLING_RATE = 16000  
     LEVEL = 500     
     COUNT_NUM = 20   
     SAVE_LENGTH = 8     
     Voice_String = []
     def savewav(self,filename):
         wf = wave.open(filename, 'wb')
         wf.setnchannels(1)
         wf.setsampwidth(2)
         wf.setframerate(self.SAMPLING_RATE)
         wf.writeframes(np.array(self.Voice_String).tostring())
         wf.close()
     def recoder(self):
         pa = PyAudio()
         stream = pa.open(format=paInt16, channels=1, rate=self.SAMPLING_RATE, input=True,frames_per_buffer=self.NUM_SAMPLES)
         save_count = 0
         save_buffer = []
         while True:
            string_audio_data = stream.read(self.NUM_SAMPLES)
            audio_data = np.fromstring(string_audio_data, dtype=np.short)
            large_sample_count = np.sum(audio_data > self.LEVEL)
            print(np.max(audio_data))
            if large_sample_count > self.COUNT_NUM:
                save_count = self.SAVE_LENGTH
            else:
                save_count -= 1
            if save_count < 0:
                save_count = 0
            if save_count > 0:
                save_buffer.append(string_audio_data )
            else:
                if len(save_buffer) > 0:
                    self.Voice_String = save_buffer
                    save_buffer = []
                    print("Recode a piece of voice successfully!")
                    return True
		 else:
                    return False
if __name__ == "__main__":
    r = recoder()
    r.recoder()
    r.savewav("test.wav")

注意:在利用python解釋器實(shí)現(xiàn)時(shí)一定要注意空格?。?!
最后生成的文件就在Python解釋器回話所在目錄下,可以通過(guò)play來(lái)播放測(cè)試一下,如果沒(méi)有安裝play可以通過(guò)apt命令來(lái)安裝。

中文的語(yǔ)音識(shí)別

在進(jìn)行完以前的工作以后,我們對(duì)語(yǔ)音識(shí)別的流程大概有了一定的了解,但是作為一個(gè)中國(guó)人總得做一個(gè)中文的語(yǔ)音識(shí)別吧!

我們要在CMU Sphinx語(yǔ)音識(shí)別工具包里面下載對(duì)應(yīng)的普通話升學(xué)和語(yǔ)言模型。

Linux下怎么用python實(shí)現(xiàn)語(yǔ)音識(shí)別功能

圖片中標(biāo)記的就是普通話!下載相關(guān)的語(yǔ)音識(shí)別工具包。

但是我們要把zh_broadcastnews_64000_utf8.DMP轉(zhuǎn)化成language-model.lm.bin,再解壓zh_broadcastnews_16k_ptm256_8000.tar.bz2得到zh_broadcastnews_ptm256_8000文件夾。
借鑒剛才那位博主的方法,在Ubuntu下找到speech_recognition文件夾。可能會(huì)有很多小伙伴找不到相關(guān)的文件夾,其實(shí)是在隱藏文件下。大家可以點(diǎn)擊文件夾右上角的三條杠。如下圖所示:

Linux下怎么用python實(shí)現(xiàn)語(yǔ)音識(shí)別功能

然后給顯示隱藏文件打個(gè)勾,如下圖所示:

Linux下怎么用python實(shí)現(xiàn)語(yǔ)音識(shí)別功能

然后依次按照以下目錄就可以找到啦:

Linux下怎么用python實(shí)現(xiàn)語(yǔ)音識(shí)別功能

然后把原來(lái)的en-US改名成en-US-bak,新建一個(gè)文件夾en-US,把解壓出來(lái)的zh_broadcastnews_ptm256_8000改成acoustic-model,把chinese.lm.bin改成language-model.lm.bin,把pronounciation-dictionary.dic改后綴成dict,復(fù)制這三個(gè)文件到en-US里。同時(shí)把原來(lái)en-US文件目錄下的LICENSE.txt復(fù)制到現(xiàn)在的文件夾下。
最終該文件夾下有以下文件:

Linux下怎么用python實(shí)現(xiàn)語(yǔ)音識(shí)別功能

然后我們就可以通過(guò)麥克風(fēng)錄入一個(gè)語(yǔ)音文件文件(“test.wav”)
在該文件目錄下打開(kāi)python解釋器輸入以下內(nèi)容:

Linux下怎么用python實(shí)現(xiàn)語(yǔ)音識(shí)別功能

就看到了輸出內(nèi)容,但是我說(shuō)的是兩個(gè)中國(guó),也測(cè)試了一下其他的發(fā)現(xiàn)識(shí)別效果很不好?。。?br>

小范圍中文識(shí)別

用官方提供的效果太差,幾乎不能用!那么我看了很多文章以后就想到了一種優(yōu)化方法,但是只適合小范圍的識(shí)別!一些命令啥的應(yīng)該沒(méi)有問(wèn)題,但是聊天什么的可能就效果不太好。
找到剛才復(fù)制的4個(gè)文件夾,有一個(gè)pronounciation-dictionary.dict的文件夾,打開(kāi)以后是以下內(nèi)容:

Linux下怎么用python實(shí)現(xiàn)語(yǔ)音識(shí)別功能

感覺(jué)這內(nèi)容就是類似于一個(gè)字典,很多用詞和平時(shí)交流的用詞差距比較大。那么我們改成我們習(xí)慣的用詞就可以啦! 抱著試一試的想法,結(jié)果還真的可以。識(shí)別效果真的不錯(cuò)!
我的做法是:
(1)把圖片中紅色標(biāo)記以上的內(nèi)容繼續(xù)保留,紅色以下的內(nèi)容刪除掉。當(dāng)然處于保險(xiǎn)考慮建議大家給該文件備份一下!
(2)給紅色線以下輸入自己想識(shí)別的內(nèi)容!(按照規(guī)則輸入,不同于拼音!?。。┳罱滦头窝椎那闆r不斷的變好,聽(tīng)到最多的一句話就是“中國(guó)加油”那么今天的內(nèi)容就是將“中國(guó)加油”實(shí)現(xiàn)語(yǔ)音轉(zhuǎn)文字!希望能早日開(kāi)學(xué),哈哈哈哈。

Linux下怎么用python實(shí)現(xiàn)語(yǔ)音識(shí)別功能

3)輸入以下內(nèi)容:

Linux下怎么用python實(shí)現(xiàn)語(yǔ)音識(shí)別功能

語(yǔ)音合成

語(yǔ)音合成個(gè)人的理解就是文字轉(zhuǎn)語(yǔ)音。不過(guò)這句話中可以設(shè)置client = AipSpeech(APP_ID, API_KEY, SECRET_KEY) result = client.synthesis('你好百度', 'zh', 1, { 'vol': 5,'spd': 3,'pit':9,'per': 3})音量、聲調(diào)、速度、男/女/蘿莉/逍遙。

以上是Linux下怎么用python實(shí)現(xiàn)語(yǔ)音識(shí)別功能的詳細(xì)內(nèi)容。更多信息請(qǐng)關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

本站聲明
本文內(nèi)容由網(wǎng)友自發(fā)貢獻(xiàn),版權(quán)歸原作者所有,本站不承擔(dān)相應(yīng)法律責(zé)任。如您發(fā)現(xiàn)有涉嫌抄襲侵權(quán)的內(nèi)容,請(qǐng)聯(lián)系admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費(fèi)脫衣服圖片

Undresser.AI Undress

Undresser.AI Undress

人工智能驅(qū)動(dòng)的應(yīng)用程序,用于創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用于從照片中去除衣服的在線人工智能工具。

Clothoff.io

Clothoff.io

AI脫衣機(jī)

Video Face Swap

Video Face Swap

使用我們完全免費(fèi)的人工智能換臉工具輕松在任何視頻中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費(fèi)的代碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

功能強(qiáng)大的PHP集成開(kāi)發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺(jué)化網(wǎng)頁(yè)開(kāi)發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級(jí)代碼編輯軟件(SublimeText3)

熱門話題

Laravel 教程
1601
29
PHP教程
1502
276
Python連接到SQL Server PYODBC示例 Python連接到SQL Server PYODBC示例 Jul 30, 2025 am 02:53 AM

安裝pyodbc:使用pipinstallpyodbc命令安裝庫(kù);2.連接SQLServer:通過(guò)pyodbc.connect()方法,使用包含DRIVER、SERVER、DATABASE、UID/PWD或Trusted_Connection的連接字符串,分別支持SQL身份驗(yàn)證或Windows身份驗(yàn)證;3.查看已安裝驅(qū)動(dòng):運(yùn)行pyodbc.drivers()并篩選含'SQLServer'的驅(qū)動(dòng)名,確保使用如'ODBCDriver17forSQLServer'等正確驅(qū)動(dòng)名稱;4.連接字符串關(guān)鍵參數(shù)

優(yōu)化用于內(nèi)存操作的Python 優(yōu)化用于內(nèi)存操作的Python Jul 28, 2025 am 03:22 AM

pythoncanbeoptimizedFormized-formemory-boundoperationsbyreducingOverHeadThroughGenerator,有效dattratsures,andManagingObjectLifetimes.first,useGeneratorSInsteadoFlistSteadoflistSteadoFocessLargedAtasetSoneItematatime,desceedingingLoadeGingloadInterveringerverneDraineNterveingerverneDraineNterveInterveIntMory.second.second.second.second,Choos,Choos

什么是加密貨幣中的統(tǒng)計(jì)套利?統(tǒng)計(jì)套利是如何運(yùn)作的? 什么是加密貨幣中的統(tǒng)計(jì)套利?統(tǒng)計(jì)套利是如何運(yùn)作的? Jul 30, 2025 pm 09:12 PM

統(tǒng)計(jì)套利簡(jiǎn)介統(tǒng)計(jì)套利是一種基于數(shù)學(xué)模型在金融市場(chǎng)中捕捉價(jià)格錯(cuò)配的交易方式。其核心理念源于均值回歸,即資產(chǎn)價(jià)格在短期內(nèi)可能偏離長(zhǎng)期趨勢(shì),但最終會(huì)回歸其歷史平均水平。交易者利用統(tǒng)計(jì)方法分析資產(chǎn)之間的關(guān)聯(lián)性,尋找那些通常同步變動(dòng)的資產(chǎn)組合。當(dāng)這些資產(chǎn)的價(jià)格關(guān)系出現(xiàn)異常偏離時(shí),便產(chǎn)生套利機(jī)會(huì)。在加密貨幣市場(chǎng),統(tǒng)計(jì)套利尤為盛行,主要得益于市場(chǎng)本身的低效率與劇烈波動(dòng)。與傳統(tǒng)金融市場(chǎng)不同,加密貨幣全天候運(yùn)行,價(jià)格極易受到突發(fā)新聞、社交媒體情緒及技術(shù)升級(jí)的影響。這種持續(xù)的價(jià)格波動(dòng)頻繁制造出定價(jià)偏差,為套利者提供

如何使用Cron和Anacron在Linux上安排任務(wù) 如何使用Cron和Anacron在Linux上安排任務(wù) Aug 01, 2025 am 06:11 AM

cronisusedforpreciseschedulingonalways-onsystems,whileanacronensuresperiodictasksrunonsystemsthataren'tcontinuouslypowered,suchaslaptops;1.Usecronforexacttiming(e.g.,3AMdaily)viacrontab-ewithsyntaxMINHOURDOMMONDOWCOMMAND;2.Useanacronfordaily,weekly,o

Linux vs Windows:哪個(gè)操作系統(tǒng)更適合您? Linux vs Windows:哪個(gè)操作系統(tǒng)更適合您? Jul 29, 2025 am 03:40 AM

Windowsisbetterforbeginnersduetoeaseofuse,seamlesshardwarecompatibility,andsupportformainstreamsoftwarelikeMicrosoftOfficeandAdobeapps.2.LinuxoutperformsWindowsonolderorlow-resourcehardwarewithfasterboottimes,lowersystemrequirements,andlessbloat.3.Li

python iter和下一個(gè)示例 python iter和下一個(gè)示例 Jul 29, 2025 am 02:20 AM

iter()用于獲取迭代器對(duì)象,next()用于獲取下一個(gè)元素;1.使用iter()可將列表等可迭代對(duì)象轉(zhuǎn)換為迭代器;2.調(diào)用next()逐個(gè)獲取元素,當(dāng)元素耗盡時(shí)觸發(fā)StopIteration異常;3.通過(guò)next(iterator,default)可提供默認(rèn)值避免異常;4.自定義迭代器需實(shí)現(xiàn)__iter__()和__next__()方法,控制迭代邏輯;使用默認(rèn)值是安全遍歷的常用方式,整個(gè)機(jī)制簡(jiǎn)潔且實(shí)用。

python shutil rmtree示例 python shutil rmtree示例 Aug 01, 2025 am 05:47 AM

shutil.rmtree()是Python中用于遞歸刪除整個(gè)目錄樹(shù)的函數(shù),能刪除指定文件夾及其所有內(nèi)容。1.基本用法:使用shutil.rmtree(path)刪除目錄,需處理FileNotFoundError、PermissionError等異常。2.實(shí)際應(yīng)用:可一鍵清除包含子目錄和文件的文件夾,如臨時(shí)數(shù)據(jù)或緩存目錄。3.注意事項(xiàng):刪除操作不可恢復(fù);路徑不存在時(shí)拋出FileNotFoundError;可能因權(quán)限或文件占用導(dǎo)致失敗。4.可選參數(shù):可通過(guò)ignore_errors=True忽略錯(cuò)

Linux與Windows的主要利弊是什么? Linux與Windows的主要利弊是什么? Aug 03, 2025 am 02:56 AM

Linux適合老舊硬件、安全性高、可定制,但軟件兼容性弱;Windows軟件豐富、易用,但資源占用高。1.性能上,Linux輕量高效,適合舊設(shè)備;Windows對(duì)硬件要求高。2.軟件上,Windows兼容性更廣,尤其專業(yè)工具和游戲;Linux需借助工具運(yùn)行部分軟件。3.安全上,Linux權(quán)限管理更嚴(yán)格,更新便捷;Windows雖有防護(hù)但仍易受攻擊。4.使用難度上,Linux學(xué)習(xí)曲線陡峭;Windows操作直觀。根據(jù)需求選擇:重性能與安全選Linux,重兼容與易用選Windows。

See all articles