百度AI 開放平臺 >>> 語音合成

一、前言

繼上一篇介紹如何使用百度語音識別API 的博客《樹莓派 >>> 接入百度AI 開放平臺實現智能語音識別》後,今天我們來看看如何使用百度語音合成,有了這一聽一說,我們就可以打造屬於我們自己的語音小助手了 😃

首先附上官方教程:
百度語音合成
(我選擇使用python SDK 進行開發)

二、開始

(1)下載並安裝SDK

兩個方法都行:

  1. 若安裝了pip:
pip install baidu-aip
  1. 若安裝了setuptools:
python setup.py install

若在python 環境下import aip 沒有報錯,即說明SDK 安裝成功。

(2)新建AipSpeech

AipSpeech 是語音合成的Python SDK 客戶端,爲使用語音合成的開發人員提供了一系列的交互方法。

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)

上述App ID、Api Key、Secret Key 的獲取在我之前那篇博客《樹莓派 >>> 接入百度AI 開放平臺實現智能語音識別》已經說過了,這裏不再贅述

(3)配置AipSpeech

若大家需要配置AipSpeech 的網絡請求參數(一般不需要配置),可以在構造AipSpeech 之後調用接口設置參數,目前只支持以下參數:

接口 說明
setConnectionTimeoutInMillis 建立連接的超時時間(單位:毫秒)
setSocketTimeoutInMillis 通過打開的連接傳輸數據的超時時間(單位:毫秒)

(4)使用SDK

合成一段語音文件:

result  = client.synthesis('你好百度', 'zh', 1, {
    'vol': 5,
})

# 識別正確返回語音二進制 錯誤則返回dict 參照下面錯誤碼
if not isinstance(result, dict):
    with open('auido.mp3', 'wb') as f:
        f.write(result)
參數 類型 描述 是否必須
tex String 合成的文本,使用UTF-8編碼,請注意文本長度必須小於1024字節
cuid String 用戶唯一標識,用來區分用戶,填寫機器 MAC 地址或 IMEI 碼,長度爲60以內
spd String 語速,取值0-9,默認爲5中語速
pit String 音調,取值0-9,默認爲5中語調
vol String 音量,取值0-15,默認爲5中音量
per String 發音人選擇, 0爲女聲,1爲男聲,3爲情感合成-度逍遙,4爲情感合成-度丫丫,默認爲普通女

若成功合成語音,則result 就是一段代表語音信息的二進制數據流,否則就是一段錯誤信息(可打印出來查看)

合成之後我們就可以把這段二進制流寫到一個.mp3 文件中

audio_file = open('C:/Users/asdf/Desktop/baidu_api_test.mp3', 'wb')
audio_file.write(result)
audio_file.close()

若是系統無法區分我們想要其發出的音調,例如“重心”“重慶”,這個“重” 很明顯是發不同的音的,這就需要我們在合成語句的text 中進行說明:

result  = client.synthesis('我愛重(chong2)慶', 'zh', 1, {
    'vol': 5,
})
發佈了297 篇原創文章 · 獲贊 93 · 訪問量 12萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章