此篇是人工智能應用的重點,只用現成的技術不作底層算法,也是讓初級程序員快速進入人工智能行業的捷徑。目前市面上主流的AI技術提供公司有不少,好比百度,阿里,騰訊,主作語音的科大訊飛,作只能問答的圖靈機器人等等。這些公司投入了很大一部分財力物力人力將底層封裝,提供應用接口給咱們,尤爲是百度,徹底免費的接口。既然百度這麼仗義,我們就不要浪費掉怎麼好的資源,從百度AI入手,開啓人工智能之旅python
首先進入控制檯,註冊一個百度的帳號(百度帳號通用);打開百度語音,進入語音應用管理界面程序員
就能夠建立應用了,回到應用列表咱們能夠看到已建立的應用了算法
這裏面有三個值 AppID , API Key , Secret Key 記住能夠從這裏面看到 , 在以後的學習中咱們會用到app
好了 百度語音的應用已經建立完成了 接下來 我會用Python 代碼做爲實例進行應用及講解函數
一.安裝百度的人工智能SDK:工具
首先我們要 pip install baidu-aip 安裝一個百度人工智能開放平臺的Python SDK實在是太方便了,這也是爲何咱們選擇百度人工智能的最大緣由學習
安裝完成以後就來測試一下:測試
baidu-aip Python SDK 語音合成技術文檔 : https://ai.baidu.com/docs#/TTS-Online-Python-SDK/top;咱們能夠選擇Python SDK人工智能
# -*- coding: utf-8 -*- # @Time : 2019/9/28 11:01 # @Author : AnWen 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) # 詳細參數可看python sdk 文檔 result = client.synthesis('你好百度', 'zh', 1, { 'vol': 5, #音量,取值0-15,默認爲5中音量 'per': 3, #發音人選擇, 0爲女聲,1爲男聲,3爲情感合成-度逍遙,4爲情感合成-度丫丫,默認爲普通女 'spd': 7, #語速,取值0-15,默認爲5中語速 }) # 識別正確返回語音二進制 錯誤則返回dict 參照下面錯誤碼 if not isinstance(result, dict): with open('audio.mp3', 'wb') as f: f.write(result) # 在工程目錄下,就能夠看到 audio.mp3 這個文件了,來聽一聽
百度的SDK識別我們的音頻文件,就要想辦法轉變成百度SDK能夠識別的格式PCM,命令行
能夠實現自動化轉換格式而且屢試不爽的工具 : FFmpeg 這個工具的下載地址是 : 連接:https://pan.baidu.com/s/1jonSAa_TG2XuaJEy3iTmHg 密碼:w6hk
FFmpeg 環境變量配置:
首先你要解壓縮,而後找到bin目錄,個人目錄是 C:\ffmpeg\bin
嘗試一下,是否配置成功:cmd 執行:ffmpeg
看到這個界面就算配置成功了,配置成功有什麼用呢, 這個工具能夠將wav wma mp3 等音頻文件轉換爲 pcm 無壓縮音頻文件
而後咱們用命令行對這個 audio.wav 進行pcm格式的轉換而後獲得 audio.pcm
命令是 : ffmpeg -y -i audio.wav -acodec pcm_s16le -f s16le -ac 1 -ar 16000 audio.pcm
import os 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) # 讀取文件 def get_file_content(filePath): os.system(f"ffmpeg -y -i {filePath} -acodec pcm_s16le -f s16le -ac 1 -ar 16000 {filePath}.pcm") with open(f"{filePath}.pcm", 'rb') as fp: return fp.read() # 識別本地文件 #asr函數須要四個參數,第四個參數能夠忽略,自有默認值,參照一下這些參數是作什麼的 #第一個參數: speech 音頻文件流 創建包含語音內容的Buffer對象, 語音文件的格式,pcm 或者 wav 或者 amr。(雖然說支持這麼多格式,可是隻有pcm的支持是最好的) #第二個參數: format 文件的格式,包括pcm(不壓縮)、wav、amr (雖然說支持這麼多格式,可是隻有pcm的支持是最好的) #第三個參數: rate 音頻文件採樣率 若是使用剛剛的FFmpeg的命令轉換的,你的pcm文件就是16000 #第四個參數: dev_pid 音頻文件語言id 默認1537(普通話 輸入法模型) res = client.asr(get_file_content('jttqhbc.m4a'), 'pcm', 16000, { 'dev_pid': 1536, }) print(res.get("result")[0])
若是err_no不是0的話,就參照一下錯誤碼錶
到此百度AI語音部分的調用就結束了,是否是感受很簡單