1. 程式人生 > >語音識別介面webAPI-python測試:百度和科大訊飛

語音識別介面webAPI-python測試:百度和科大訊飛

概述

目前市場上有很多家的語音識別介面可用,簡單測試都不要錢。國內的BAT和科大訊飛,國外的微軟和谷歌都提供了中文的語音識別介面,既有sdk又有webAPI。我的測試都是在python3環境下進行的。

最終選擇百度和科大訊飛的介面。主要是考慮中文識別應該國內廠商做的更好。

免費試用階段,科大訊飛每天限定500次呼叫。百度則只限制每秒20次,總次數沒限制。

試用下來的感覺就是,科大訊飛的介面更快,斷句什麼的也更好。但是試用次數少是個問題,只能評估玩玩。

科大訊飛語音識別webAPI

使用之前需要先去https://xfyun.cn註冊並建立應用。獲得APPID和APPkey.

程式碼是官網上的,但是那是個python2上的,我改成python3版本了(python3對於引數的編碼格式更嚴格)。

注意:將指令碼中 AUDIO_PATH, API_KEY, APPID, 換成相應的音訊路徑,訊飛開放平臺提供的 apiKey,訊飛開放平臺應用的 appid 即可。

#!/usr/bin/python
# -*- coding: UTF-8 -*-
import urllib.request
import time
import urllib
import json
import hashlib
import base64
from urllib import parse

def main():
    f = open("AUDIO_PATH", 'rb')
    file_content = f.read()
    base64_audio = base64.b64encode(file_content)
    body = parse.urlencode({'audio'
: base64_audio}) url = 'http://api.xfyun.cn/v1/service/v1/iat' api_key = 'API_KEY' param = {"engine_type":"sms16k","aue":"raw"} x_appid = 'APPID' json_str = json.dumps(param).replace(' ', '') print('json_str:{}'.format(json_str)) x_param = base64.b64encode(bytes(json_str, 'ascii'
)) x_time = int(int(round(time.time() * 1000)) / 1000) x_checksum_str = api_key + str( x_time ) + str(x_param)[2:-1] print('x_checksum_str:[{}]'.format(x_checksum_str)) x_checksum = hashlib.md5(x_checksum_str.encode(encoding='ascii')).hexdigest() print('x_checksum:{}'.format(x_checksum)) x_header = {'X-Appid': x_appid, 'X-CurTime': x_time, 'X-Param': x_param, 'X-CheckSum': x_checksum} start_time = time.time() req = urllib.request.Request(url, bytes(body, 'ascii'), x_header) result = urllib.request.urlopen(req) result = result.read() print( "used time: {}s".format( round( time.time() - start_time, 2 ) ) ) print('result:'+str(result.decode(encoding='UTF8'))) return if __name__ == '__main__': main()

我的一個測試輸出:

json_str:{"engine_type":"sms16k","aue":"raw"}

used time: 0.82s
result:{"code":"0","data":"特別是跨省區電網超計劃用電,不僅損害自己,也損害別人,損害電網,損害國家。","desc":"success","sid":"[email protected]"}

一個注意點

如果沒有把ip放到白名單中,就會返回以下錯誤資訊,錯誤碼是10105

al access|illegal client_ip:xxxxx

在‘控制檯->我的應用’裡把資訊裡的IP加上就行。

百度語音識別webAPI

然後在管理控制檯上建立一個語音識別應用,你會得到AppId\AppKey\SecretKey等資訊,這些需要在呼叫介面的時候用到。

參考官方例子,我的程式碼如下(注意替換自己的APP_ID、API_KEY、SECRET_KEY):

from aip import AipSpeech
import time

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):
    with open(filePath, 'rb') as fp:
        return fp.read()

# 識別本地檔案
start_time = time.time()
ret = client.asr(get_file_content('./aideo_files/A2_58.wav'), 'pcm', 16000, {
    'dev_pid': 1537,
})
used_time = time.time() - start_time

print( "used time: {}s".format( round( time.time() - start_time, 2 ) ) )
print('ret:{}'.format(ret))

我測試的輸出結果為:

used time: 8.18s
ret:{'corpus_no': '6592465378279780417', 'err_msg': 'success.', 'err_no': 0, 'result':
['特別是跨省區電網超計劃用電,不僅損害自己也損害別人損害電網損害國家,'], 'sn': '148955205071534927957'}

時間上比科大訊飛長了好幾倍,斷句也不是很好。勝在試用次數基本不限。

小結

比較 優點 缺點
百度 試用次數多 速度慢,斷句不太好
科大訊飛 速度快,斷句好 試用次數有限

今天測試比較簡單,等後面大規模測試了再來補充。

相關推薦

語音識別介面webAPI-python測試科大

概述 目前市場上有很多家的語音識別介面可用,簡單測試都不要錢。國內的BAT和科大訊飛,國外的微軟和谷歌都提供了中文的語音識別介面,既有sdk又有webAPI。我的測試都是在python3環境下進行的。 最終選擇百度和科大訊飛的介面。主要是考慮中文識別應該國內

Delphi url 編碼及轉碼及特殊字串替換--用的就是這個

先介紹一下,Delphi中處理Google的URL編碼解碼,其中就會明白URL編碼轉換的方法的 從delphi的角度看Google(谷歌)URL編碼解碼方式 在網上搜索了一下,似乎沒有什麼關於google的URL編碼解碼的很詳細的資料,因此在這裡寫一下,希望給有用的人提供

iOS語音識別具體的封裝識別、播放、進度刷新

stat app span nsdata cst 放音 datawit har resp 一、介紹 以前做過訊飛語音識別,比較簡單,識別率很不錯,但是它的識別時間是有限制的,最多60秒。可是有的時候我們需要更長的識別時間,例如朗誦古詩等功能。當然訊飛語音也是可以通過曲線救

python調用語音語音識別-鬥地主語音記牌器)

receive idt 本地文件 file post 最終 callback import pri 一、概述 本篇簡要介紹百度語音語音識別的基本使用(其實是鬥地主時想弄個記牌器又沒money,抓包什麽的又不會,只好搞語音識別的了) 二、創建應用 打開百度語

基於python+opencv+pyqt5+AI實現的人臉識別語音播報、語音合成、模擬簽到系統(1)

人臉識別效果圖 簡單介紹 使用python3+寫的,使用face_recognition(python開源的人臉識別庫)進行人臉識別 ,使用opencv2進行開啟顯示攝像頭圖片等,使用pyqt5是ui介面,使用百度AI中的百度語音合成實現語音播報和語音合成,

語音識別api呼叫 python

最近在處理語音檢索相關的事。 其中用到語音識別,呼叫的是訊飛與百度的api,前者使用js是實現,後者用python3實現(因為自己使用python) 環境: python3.5 centos 7 流程 整個百度語音識別rest api 使用分

Python】呼叫REST API實現語音識別

目前,語音識別,即將語音內容轉換為文字的技術已經比較成熟,遙想當時錘子釋出會上展示的訊飛輸入法語音識別,著實讓訊飛火了一把。由於此類語音識別需要採集大量的樣本,才能達到一定的準確度,個人很難從零開

FreeSWITCH 語音識別 ASR 介面介紹 科大 阿里雲 等介面實現

FreeSWITCH 語音識別 ASR 模組 最近很多人都對FreeSWITCH和ASR對接比較感謝興趣,我之前已經做了一個商業模組(商業模組請點選這裡http://www.dingdingtong.

python調用語音識別接口實時識別

bsp 鼠標 -m pyw lan 語音識別 .com 實時 代碼 1、本文直接上幹貨   奉獻代碼:https://github.com/wuzaipei/audio_discern/tree/master/%E8%AF%AD%E9%9F%B3%E8%AF%86%E5%

python爬取翻譯返回{'error': 997, 'from': 'zh', 'to': 'en', 'query 問題

escape result words fan use rip odin 解決 base 解決辦法: 修改url為手機版的地址:http://fanyi.baidu.com/basetrans User-Agent也用手機版的 測試代碼: # -*- coding: utf

Python爬蟲-利用地圖API介面爬取資料並儲存至MySQL資料庫

首先,我這裡有一份相關城市以及該城市的公園數量的txt檔案: 其次,利用百度地圖API提供的介面爬取城市公園的相關資訊。 所利用的API介面有兩個: 1、http://api.map.baidu.com/place/v2/search?q=公園&

科大語音平臺語音識別Java呼叫記錄

1、科大訊飛平臺:http://www.xfyun.cn/doccenter/java      註冊並建立應用,下載SDK,選擇語音聽寫+Java+建立的應用(APPID);      未提交稽核的應用,服務量會有500次/日的限制,開發完成後提交稽核解除限制;     

C++語音識別介面快速入門(Microsoft Speech SDK)——文字轉語音

C++語音識別介面快速入門(Microsoft Speech SDK) 尤其注意其中的寬字串轉化 #include <iostream> #include <sapi.h> //匯入語音標頭檔案 #include <string

人臉識別系列(七)的人臉識別

網路結構: 輸入的是對齊好了的人臉影象,將人臉影象通過面部標記點切分為多個相互之間有重疊部分的Patch,分別輸入相同結構的網路,每個網路都在不同的GPU上訓練。 網路結構包含9個卷積層,某些卷積層的後面有池化層,標準化層,論文中與圖中都沒有詳細

google 語音識別介面

請求方法 public static String postFileSend(String reqUrl, String[][] httpHeader, String filePath, String encode) throws IOException { if (StringUtils.isE

科大語音無限制錄音、識別功能的實現Android studio(一)

            最近想要做一款語音聽寫APP,在網上搜索關於如何使用科大訊飛語音的Demo少之又少,又或者是隻是單純的按照文件來實現簡單的語音聽寫,遠遠不能滿足需求,看了幾天的文件和自己搜尋的一些資料,還有這幾天中遇到的一些問題,覺得有必要做一個筆記,能給初學者一些

unity3d語音線上語音轉文字,文字轉語音,跨平臺

轉自洪流學堂 語音轉文字 1.開啟麥克風記錄 _clipRecord = Microphone.Start(null, false, 30, 16000); 2.將Unity的AudioClip資料轉化為PCM格式16bit資料 /// <s

python requests庫網頁爬取小實例/360搜索關鍵詞提交

ext aid col text () status exc print 爬取 百度/360搜索關鍵詞提交全代碼: #百度/360搜索關鍵詞提交import requestskeyword=‘Python‘try:   #百度關鍵字  # kv={‘w

前端性能分析分析sogou

後臺 性能 con 圖片 work char sogo wait 部分 先用httpwatch錄制這兩個網站:www.baidu.com www.sogou.com 由上圖可以看到: 百度用時0.278s 發送7831B 接收36620B 13個請求 搜狗

python爬取搜索圖片

知乎 需要 with 異常 mage 不足 request height adr 在之前通過爬取貼吧圖片有了一點經驗,先根據之前經驗再次爬取百度搜索界面圖片 廢話不說,先上代碼 #!/usr/bin/env python # -*- coding: utf-8 -*- #