将来、人工知能は市場で非常に重要な位置を占めるでしょう。Python言語は人工知能を学ぶのに最適なプログラミング言語です。それでは、その魅力を感じてみましょう。
Baiduが提供するサンプルプログラムは、C版でもJava版でも、method1とmethod2の2種類に分かれており、前者はimplicit(投稿はjson文字列、音声データはjsonにエンコード)と呼ばれます。後者は明示的と呼ばれます (投稿は音声データです) この記事では主に Python 言語で実装された Baidu 音声認識 API の使用例を紹介します。必要な方は参考にしていただければ幸いです。
当初、pythonwaveパッケージは「文字列」を扱っていると考え、C言語の配列と矛盾するのではないかと心配したため、非効率ではあるが安全な方法1、
つまり、まずbase64を選択しました。オーディオ データとサンプリング レートをエンコードします。チャンネル数などの情報が dict に収集され、最終的に JSON 文字列にエンコードされます。結果は常に次のように報告されます。
3300 入力パラメータが間違っています
urllib2 と pycurl パッケージを続けて実行しましたが、それらはすべて同じです
method2 に切り替える必要がありましたが、成功しました (wave パッケージによるオーディオの保存は「文字列」ではないようです)
#encoding=utf-8 import wave import urllib, urllib2, pycurl import base64 import json ## get access token by api key & secret key def get_token(): apiKey = "xxxxxxxx" secretKey = "xxxxxxxxx" auth_url = "https://openapi.baidu.com/oauth/2.0/token?grant_type=client_credentials&client_id=" + apiKey + "&client_secret=" + secretKey; res = urllib2.urlopen(auth_url) json_data = res.read() return json.loads(json_data)['access_token'] def dump_res(buf): print buf ## post audio to server def use_cloud(token): fp = wave.open('vad_0.wav', 'rb') nf = fp.getnframes() f_len = nf * 2 audio_data = fp.readframes(nf) cuid = "xxxxxxxxxx" #my xiaomi phone MAC srv_url = 'http://vop.baidu.com/server_api' + '?cuid=' + cuid + '&token=' + token http_header = [ 'Content-Type: audio/pcm; rate=8000', 'Content-Length: %d' % f_len ] c = pycurl.Curl() c.setopt(pycurl.URL, str(srv_url)) #curl doesn't support unicode #c.setopt(c.RETURNTRANSFER, 1) c.setopt(c.HTTPHEADER, http_header) #must be list, not dict c.setopt(c.POST, 1) c.setopt(c.CONNECTTIMEOUT, 30) c.setopt(c.TIMEOUT, 30) c.setopt(c.WRITEFUNCTION, dump_res) c.setopt(c.POSTFIELDS, audio_data) c.setopt(c.POSTFIELDSIZE, f_len) c.perform() #pycurl.perform() has no return val if __name__ == "__main__": token = get_token() use_cloud(token)
実行結果
{"corpus_no":"6150045491002357923","err_msg":"success.","err_no":0,"result":["播放小苹果,"],"sn":"243903724071431919050"}
関連する推奨事項:
以上がBaidu音声認識機能をPython言語で実装した例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。