如何利用Node.js將語音轉(zhuǎn)換為文本
譯文譯者 | 李睿
審校 | 孫淑娟
本文將簡要概述語音識(shí)別技術(shù)及其常見應(yīng)用,并演示一個(gè)免費(fèi)的語音到文本的API,該API可用于以MP3和WAV文件格式轉(zhuǎn)錄音頻。這個(gè)演示將包括逐步指令使用“即運(yùn)行Node.js代碼”示例調(diào)用這個(gè)API。
語音識(shí)別技術(shù)的概述
人們通常將語音識(shí)別技術(shù)視為當(dāng)代技術(shù)領(lǐng)域的一個(gè)相對(duì)較新的補(bǔ)充,而這只是一部分事實(shí)。語音識(shí)別技術(shù)已經(jīng)存在了半個(gè)多世紀(jì),從上世50年代初的一些先驅(qū)公司開發(fā)的功能有限的數(shù)字/文字識(shí)別系統(tǒng)開始。,盡管語音識(shí)別技術(shù)有著悠久的歷史,過去十年來在智能消費(fèi)類設(shè)備領(lǐng)域得到了廣泛應(yīng)用,但語音識(shí)別仍然是當(dāng)今市場(chǎng)上較為抽象的技術(shù)之一。這是因?yàn)楦鞣N語音識(shí)別技術(shù)都跨越了計(jì)算機(jī)科學(xué)、計(jì)算語言學(xué)和數(shù)學(xué)/統(tǒng)計(jì)學(xué)等領(lǐng)域,需要各個(gè)領(lǐng)域的大量輸入才能獲得準(zhǔn)確的語音到文本結(jié)果。
在(非常)高的級(jí)別上,為了讓語音識(shí)別技術(shù)實(shí)施其最基本的任務(wù),必須首先對(duì)給定的音頻文件進(jìn)行預(yù)處理以優(yōu)化其質(zhì)量。然后將其分解為更小的分量信號(hào)并進(jìn)行排序。這些經(jīng)過排序的信號(hào)必須足夠小,以便數(shù)學(xué)模型可以將其與某些音素(結(jié)合在一起生成單詞的特定于語言的聲音;例如“eeee”或“ahhh”噪音)匹配,這有助于與該語言中的短語或句子進(jìn)行比較。歸根結(jié)底,語音識(shí)別服務(wù)的目標(biāo)很簡單:盡可能準(zhǔn)確地猜測(cè)錄制的音頻中使用了哪些單詞,并不斷改進(jìn)和擴(kuò)展其語言數(shù)據(jù)庫,直到猜測(cè)達(dá)到可接受的準(zhǔn)確性水平。
這種復(fù)雜且固有的有限信息猜測(cè)系統(tǒng)甚至使最基本的語音識(shí)別服務(wù)也依賴于語言和方言,因?yàn)樗鼈円蕾囉谝纛l質(zhì)量。語言、口音、詞匯的變化以及背景噪音的存在都會(huì)產(chǎn)生邊界,這對(duì)于單個(gè)語音到文本模型很難克服。此外,這種復(fù)雜性反映了一個(gè)基本事實(shí),即語音識(shí)別服務(wù)是高度資源密集型的,依賴于龐大并且不斷增長的參考數(shù)據(jù)集進(jìn)行語音比較,需要相當(dāng)大的計(jì)算能力才能有效利用這些數(shù)據(jù)集。這些因素共同使得訓(xùn)練一個(gè)全新的語音到文本模型成為一項(xiàng)艱巨的任務(wù)。
語音識(shí)別的應(yīng)用
語音識(shí)別在很大程度上是由于在更大的技術(shù)市場(chǎng)上出現(xiàn)了一些無處不在的創(chuàng)新,尤其是近乎無限的云計(jì)算數(shù)據(jù)存儲(chǔ)解決方案的增長,語音識(shí)別已成為人們現(xiàn)在在日常生活中認(rèn)識(shí)到的高效而有用的消費(fèi)者服務(wù)。人們可以直接采用手機(jī)、固定電話和辦公室設(shè)備進(jìn)行溝通和對(duì)話,以自動(dòng)查詢所需要的信息,記錄和組織自己的想法供以后使用,以及聽到大聲宣讀的短信,等等。
目前,消費(fèi)者應(yīng)用只是語音識(shí)別技術(shù)應(yīng)用的冰山一角。語音識(shí)別的許多相互關(guān)聯(lián)的過程的進(jìn)步創(chuàng)造了擴(kuò)展音頻轉(zhuǎn)錄輸出的機(jī)會(huì),并鼓勵(lì)越來越多的商業(yè)應(yīng)用程序進(jìn)行語音到文本轉(zhuǎn)換。在人們的周圍有很多這樣的例子。許多虛擬會(huì)議平臺(tái)現(xiàn)在使用語音識(shí)別服務(wù)(通常是實(shí)時(shí)的)對(duì)團(tuán)隊(duì)演示文稿進(jìn)行轉(zhuǎn)錄,生成的文本可以方便地存儲(chǔ)給任何可能錯(cuò)過會(huì)議的人。聊天機(jī)器人利用語音識(shí)別幫助人們?cè)谑謾C(jī)上進(jìn)行選擇,這些對(duì)話中轉(zhuǎn)錄的音頻可以用于其他用途:為未來更好的客戶服務(wù)實(shí)踐提供信息。人們可能參加的講座、訪談、演講和其他演講活動(dòng)可以通過個(gè)人設(shè)備進(jìn)行錄制和轉(zhuǎn)錄,以消除人工抄錄筆記的工作。例如,這些轉(zhuǎn)錄可以通過自然語言處理(NLP)模型進(jìn)行處理,以從轉(zhuǎn)錄文本中尋找以前看不到(或聽不到)的見解。
值得一提的是,實(shí)用的內(nèi)容調(diào)節(jié)和搜索引擎優(yōu)化功能也可以從可擴(kuò)展的語音到文本分析服務(wù)中獲得——而這次是在企業(yè)數(shù)據(jù)存儲(chǔ)環(huán)境中獲得。考慮到大多數(shù)客戶端上傳內(nèi)容的不可靠性,自動(dòng)轉(zhuǎn)錄上傳到網(wǎng)站的音頻文件可以輕松調(diào)節(jié)父級(jí)音頻文件的語言,以確保其對(duì)所有聽眾安全(例如查看是否包含極有爭議的語言、仇恨言論或任何形式的對(duì)個(gè)人或團(tuán)體的騷擾)。這顯著減少了內(nèi)容審核人員的工作量,并提高了其效率。這些相同的轉(zhuǎn)錄文件還可以用于生成有用的關(guān)鍵字,從而使音頻文件更容易從大型數(shù)據(jù)庫中搜索和檢索。
示范:CloudMersive語音到文本API
將語音識(shí)別作為一項(xiàng)服務(wù)加以利用的一種方法是通過包含Cloudmersive語音到文本API。該API目前支持MP3或WAV格式,并采用深度學(xué)習(xí)人工智能模型提供高精度的音頻轉(zhuǎn)錄。其API參數(shù)非常簡單,只需要輸入音頻文件和Cloudmersive API密鑰(API密鑰可以通過在其網(wǎng)站上注冊(cè)一個(gè)免費(fèi)帳戶獲得,該帳戶每月最多生成800個(gè)API調(diào)用)。以下將演示如何使用互補(bǔ)Node.js代碼段構(gòu)建API調(diào)用。
第一步是安裝Node.js SDK。這可以通過運(yùn)行以下命令來做到:
npm install cloudmersive-speech-api-client --save
另外,可以將以下這一代碼段添加到其軟件包中。
"dependencies": {
"cloudmersive-speech-client": "^1.1.5"
}
在安裝完成之后,可以使用以下代碼塊構(gòu)建API調(diào)用。此時(shí),需要確保已經(jīng)準(zhǔn)備好以下參數(shù):
(1)MP3或WAV音頻文件。
(2)CloudMersive API密鑰。
var CloudmersiveSpeechApiClient = require('cloudmersive-speech-api-client');
var defaultClient = CloudmersiveSpeechApiClient.ApiClient.instance;
// Configure API key authorization: Apikey
var Apikey = defaultClient.authentications['Apikey'];
Apikey.apiKey = 'YOUR API KEY';
var apiInstance = new CloudmersiveSpeechApiClient.RecognizeApi();
var speechFile = Buffer.from(fs.readFileSync("C:\\temp\\inputfile").buffer); // File | Speech file to perform the operation on. Common file formats such as WAV, MP3 are supported.
var callback = function(error, data, response) {
if (error) {
console.error(error);
} else {
console.log('API called successfully. Returned data: ' + data);
}
};
apiInstance.recognizeFile(speechFile, callback);
這樣就完成了API的構(gòu)建,無需進(jìn)一步的代碼段。成功的API呼叫將返回包含API轉(zhuǎn)錄結(jié)果的Textresult字符串。務(wù)必記住的是,輸入文件中的音頻質(zhì)量將對(duì)API創(chuàng)建準(zhǔn)確轉(zhuǎn)錄的能力產(chǎn)生重大影響,因此建議在實(shí)施這一操作之前盡可能預(yù)處理和優(yōu)化音頻質(zhì)量。
原文標(biāo)題:??How to Leverage Speech-to-Text With Node.js??,作者:Brian O'Neill