미래에는 인공지능이 시장에서 매우 중요한 위치를 차지하게 될 것이며, Python 언어는 인공지능을 연구하는 데 가장 적합한 프로그래밍 언어입니다. 이제 그 매력을 느껴보세요!
C 버전이든 Java 버전이든 Baidu에서 제공하는 샘플 프로그램은 method1과 method2의 두 가지 유형으로 나뉩니다. 전자는 암시적(포스트는 json 문자열이고 오디오 데이터는 json으로 인코딩됨)이라고 합니다. 후자는 명시적이라고 합니다(게시물은 오디오 데이터입니다). 이 기사는 Python 언어로 구현된 Baidu 음성 인식 API의 사용 예를 주로 소개합니다. 도움이 필요한 친구가 이를 참조할 수 있기를 바랍니다.
처음에는 pythonwave 패키지가 "문자열"을 다룬다고 생각하고, C 언어 배열과 맞지 않을까 걱정해서 비효율적이지만 안전한 방법 1을 선택했습니다.
즉, first 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"}
관련 추천:
위 내용은 Python 언어로 Baidu 음성 인식 기능을 구현한 예의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!