初識百度AI開放平台和簡單語音合成,值得我們深思!

7月4號,百度2018 AI開發者大會如期舉行,這是百度舉辦的第二屆人工智能大會。本次大會有諸多亮點,比如百度研製的無人駕駛汽車APOLLO正式量產並出口到日本、百度自己研發的AI芯片“崑崙”正式亮相,並藉此成為擁有從芯片到人工智能、軟件平臺、人工智能解決方案三位一體的國內AI巨頭。

初識百度AI開放平臺和簡單語音合成,值得我們深思!

作為國內最大的搜索引擎,百度在搜索技術和海量數據方面有絕對的壟斷地位,這為百度在國內人工智能領域獨佔先機創造了優勢。

這次大會,百度提出一個口號:Everyone can AI。百度提出這樣口號是有底氣的,因為百度利用自身的技術優勢完成了一個AI基礎架構平臺,並開放出來供開發者使用,這個平臺就是百度AI開放平臺。利用這個開放平臺,我們能輕鬆地使用百度人工智能的基礎架構資源,通過調用其相關API,使我們的應用程序獲得AI功能。

打開百度AI開放平臺(https://ai.baidu.com)的產品服務清單,我們可以看到百度AI開放平臺提供如下類型的服務:

l 語音技術

l 圖像技術

l 人臉與人體識別

l 視頻技術

l AR與VR

l 自然語言處理

l 數據智能

l 知識圖譜

每種類型的服務又包含若干類型的子項API服務,比如對於上面的語音技術,它就包含了下面幾種API服務:

l 語音識別

l 語音合成

l 語音喚醒

l 智能呼叫中心

這些API是基於HTTPS的,通過提供RESTful風格的API為開發者提供服務,比如,語音合成API服務可以將文本轉化成可以播放的音頻文件。

一般而言,使用百度AI服務的步驟為:

1) 註冊成為百度AI開放平臺開發者;

2) 在百度API開放平臺上創建相關類型的的AI應用,獲得AppID、API Key和Secret Key;

3) 調用相關類型的API,獲得AI功能的結果,為開發者的應用服務。

利用百度語音API實現一個簡單的詩歌朗誦應用

這裡我們將介紹如何使用百度的語音合成API來寫一個簡單的應用:把一個包含有《面朝大海,春暖花開》詩歌的文本文檔傳化成為音頻文件,然後聽聽機器如何朗誦這首詩歌。

具體步驟如下:

要使用百度的這些AI服務,你必須要首先要在百度AI開放平臺上註冊成為開發者。百度AI開發者賬號分為個人賬號和企業賬號,無論哪種開發者賬號,都需要實名認證。這裡我們註冊的是個人開發者,註冊完後需要進行實名認證。這裡的實名認證不但包括姓名、身份證等個人實名信息,還包括個人真實照片等信息。為了方便開發者實名信息認證,百度雲移動app集成了百度自家的某些人臉AI服務,提供了刷臉認證,用戶可以下載該app完成實名認證。

當你完成了實名認證後,打開百度AI開放平臺的控制檯頁面,我們可以看到會自動開通如下的AI服務:

初識百度AI開放平臺和簡單語音合成,值得我們深思!

2. 創建語音合成AI引用

選擇上面百度語音類別,然後創建一個語音應用:

初識百度AI開放平臺和簡單語音合成,值得我們深思!

默認情況下,一個語音AI應用同時包含語音識別和語音合成的接口。語音AI應用創建好,會自動分配AppID,App Key和Secret Key,如果開發者要使用百度語音的API服務,這些信息是必要的。如果你熟悉OAuth 2.0 方式的API的調用流程,你會感覺上面的相關術語很熟悉,事實上百度AI應用的API都是採用OAuth 2.0方式的,只不過百度的相關SDK API將這套流程封裝得很好,我們使用時可以無需直接處理。

除此之外,打開應用詳情,可以看到百度為AI應用分配的默認資源,如QPS,對於本例子中的語音合成API,默認QPS是100,如果開發者認為這些資源還不夠,還可以申請更多的服務資源。

初識百度AI開放平臺和簡單語音合成,值得我們深思!

3. 安裝AI應用SDK,並調用API完成服務

1) 安裝SDK

百度語音服務提供了多種編程語言相關的SDK,這裡選擇Python版本的。打開百度AI開放平臺語音服務SDK下載頁面(https://ai.baidu.com/sdk#asr),選擇Python SDK。

筆者採用Python官方推薦的主流版本Python 3,本例具體版本是Python 3.6.4。

解壓下載的zip SDK文件後,進入加壓後的目錄:

python setup.py install

2) 準備文本材料

準備好詩歌《面朝大海,春暖花開》的文本文件flower.txt,注意標點符號,保存為UTF-8格式的。

利用上面創建的語音應用的AppID, App Key和Secret Key:

from aip import AipSpeech

""" 你的 APPID AK SK """

APP_ID = '你的 App ID'

API_KEY = '你的 Api Key'

SECRET_KEY = '你的 Secret Key'

client = AipSpeech(APP_ID, API_KEY, SECRET_KEY)

result = client.synthesis(open('blossoms.txt', encoding='utf8').read(), 'zh', 1, {

'per': 0, 'vol': 3, 'pit': 7

})

# 識別正確返回語音二進制 錯誤則返回dict 參照下面錯誤碼

if not isinstance(result, dict):

with open('poem.mp3', 'wb') as f:

f.write(result)

else:

print(result)

代碼解釋如下:

讀取文本文件,獲得文本數據,然後作為參數傳入client.synthesis() API,當請求成功後就返回一個音頻格式的數據內容並寫入文件,失敗則打印出錯誤信息。

用戶還可以根據自己的相關需要選擇合成語音時的語速,語調,音量和發聲人選擇,具體參數細節可以參考API文檔(https://ai.baidu.com/docs#/TTS-API/top

執行上面的代碼,可以發現一個名為poem.mp3的音頻文件產生了,用Windows自帶的Windows Media Player播放可以聽到合成的語音朗誦這首詩。

我們可以發現,機器朗誦的詩歌和人朗誦的相比還是有很大差距,或者我們可以說機器詩歌朗誦是缺乏靈魂的,這是目前AI技術的侷限,也是需要努力的方向。隨著百度AI語音的進化,特別是豐富語料之後,我相信相關語音合成效果會越來越好。

與此同時,通過上面的演示,我們可以看到,開發者十分鐘就可以完成一些簡單的文本與語音的轉換。這大大降低了開發者使用AI的難度。如果沒有這些服務,用戶要麼自己去實現一套自己的語音合成機器模型和語料庫,或者藉助第三方TTS SDK,這樣的開發難度都大很多。

把上面的代碼稍作修改,在文本文件中輸入一些大眾不會念的生僻字,即可實現一個生僻字的念法應用。

除此在外,百度AI開放平臺還提供其他更多更實用的AI服務,讀者可以自行探索,基本開發流程跟本文類似。

後記:

百度作為一家國內頂尖的互聯網和AI公司,其技術實力毋庸置疑,但是百度是一家頗具爭議的公司。在上面的百度AI開放平臺的控制檯中,我們看到百度提供一些人臉識別、內容審查等敏感而又有爭議性的AI服務,這些AI服務在公眾生活中涉及到個人隱私,公眾輿論的熱點事件中應該發揮什麼樣的作用,值得我們深思。


分享到:


相關文章: