电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

基于python實現百度語音識別和圖靈對話

瀏覽:6日期:2022-07-06 15:35:17

圖例如下

基于python實現百度語音識別和圖靈對話

https://github.com/Dongvdong/python_Smartvoice

上電后,只要周圍聲音超過 2000,開始錄音5S 錄音上傳百度識別,并返回結果文字輸出 繼續等待,周圍聲音是否超過2000,沒有就等待。 點用電腦API語音交互

代碼如下

# -*- coding: utf-8 -*-# 樹莓派from pyaudio import PyAudio, paInt16import numpy as npfrom datetime import datetimeimport waveimport timeimport requests#導入requests庫import urllib, urllib.request, pycurlimport base64import jsonimport osimport sysfrom imp import reload # 調用電腦API生成語音交互import speechimport win32apiimport osimport sysimport timeimport win32con reload(sys) #sys.setdefaultencoding( 'utf-8' )#一些全局變量save_count = 0save_buffer = []t = 0sum = 0time_flag = 0flag_num = 0filename = ’’duihua = ’1’def getHtml(url): html= requests.get(url) # html.encoding = ’utf-8’#防止中文亂碼 return html.textdef get_token(): apiKey = 'AxXDYEN27Ks9XHocsGmCEdPm' secretKey = '61cd52759f4d704d91c155a22ff7183d' auth_url = 'https://openapi.baidu.com/oauth/2.0/token?grant_type=client_credentials&client_id=' + apiKey + '&client_secret=' + secretKey; res = requests.get(auth_url) #res.encoding = ’utf-8’#防止中文亂碼 #print (res.text) return json.loads(res.text)[’access_token’]def dump_res(buf):#輸出百度語音識別的結果 global duihua #print ('字符串類型') #print (buf) a = eval(buf) #print (type(a)) if a[’err_msg’]==’success.’: #print (a[’result’][0])#終于搞定了,在這里可以輸出,返回的語句 duihua = a[’result’][0] print ('我:'+duihua)def use_cloud(token):#進行合成 fp = wave.open(filename, ’rb’) nf = fp.getnframes() f_len = nf * 2 audio_data = fp.readframes(nf) cuid = '9120612' #產品id 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# 將data中的數據保存到名為filename的WAV文件中def save_wave_file(filename, data): wf = wave.open(filename, ’wb’) wf.setnchannels(1) wf.setsampwidth(2) wf.setframerate(SAMPLING_RATE) wf.writeframes(b''.join(data)) wf.close()NUM_SAMPLES = 2000 # pyAudio內部緩存的塊的大小SAMPLING_RATE = 8000 # 取樣頻率LEVEL = 1500 # 聲音保存的閾值COUNT_NUM = 20 # NUM_SAMPLES個取樣之內出現COUNT_NUM個大于LEVEL的取樣則記錄聲音SAVE_LENGTH = 8 # 聲音記錄的最小長度:SAVE_LENGTH * NUM_SAMPLES 個取樣exception_on_overflow=False# 開啟聲音輸入pyaudio對象pa = PyAudio()stream = pa.open(format=paInt16, channels=1, rate=SAMPLING_RATE, input=True,frames_per_buffer=NUM_SAMPLES)token = get_token()#獲取tokenkey = ’35ff2856b55e4a7f9eeb86e3437e23fe’api = ’http://www.tuling123.com/openapi/api?key=’ + key + ’&info=’while(True): # 讀入NUM_SAMPLES個取樣 string_audio_data = stream.read(NUM_SAMPLES,False); # 將讀入的數據轉換為數組 audio_data = np.fromstring(string_audio_data, dtype=np.short) # 計算大于LEVEL的取樣的個數 large_sample_count = np.sum( audio_data > LEVEL ) temp = np.max(audio_data) if temp > 2000 and t == 0: t = 1#開啟錄音 print ('---------主人我在聽你說!(5S)----------') begin = time.time() # print (temp) if t: #print (np.max(audio_data)) if np.max(audio_data)<1000: sum += 1 # print (sum) end = time.time() if end-begin>5: time_flag = 1 # print ('五秒到了,準備結束') # 如果個數大于COUNT_NUM,則至少保存SAVE_LENGTH個塊 if large_sample_count > COUNT_NUM: save_count = SAVE_LENGTH else: save_count -= 1 if save_count < 0: save_count = 0 if save_count > 0: # 將要保存的數據存放到save_buffer中 save_buffer.append(string_audio_data ) else: # 將save_buffer中的數據寫入WAV文件,WAV文件的文件名是保存的時刻 #if time_flag: if len(save_buffer) > 0 or time_flag:#filename = datetime.now().strftime('%Y-%m-%d_%H_%M_%S') + '.wav'#原本是用時間做名字filename = str(flag_num)+'.wav'flag_num += 1save_wave_file(filename, save_buffer)save_buffer = []t = 0sum =0time_flag = 0 # print (filename, '保存成功正在進行語音識別')use_cloud(token) # print (duihua)info = duihuaduihua = ''request = api + str(info)response = getHtml(request) # print ( '-----1-----')dic_json = json.loads(response) a = dic_json[’text’] unicodestring = a# 將Unicode轉化為普通Python字符串:'encode'utf8string = unicodestring.encode('utf-8') print ('科塔娜:'+str(a)) # 電腦說話speech.say(str(a)) url = 'http://tsn.baidu.com/text2audio?tex='+dic_json[’text’]+'&lan=zh&per=0&pit=1&spd=7&cuid=7519663&ctp=1&tok=25.41bf315625c68b3e947c49b90788532d.315360000.1798261651.282335-9120612'os.system(’mpg123 '%s'’%(url))

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: 百度 Python
相關文章:
主站蜘蛛池模板: 知名电动蝶阀,电动球阀,气动蝶阀,气动球阀生产厂家|价格透明-【固菲阀门官网】 | 佛山市钱丰金属不锈钢蜂窝板定制厂家|不锈钢装饰线条|不锈钢屏风| 电梯装饰板|不锈钢蜂窝板不锈钢工艺板材厂家佛山市钱丰金属制品有限公司 | 卷筒电缆-拖链电缆-特种柔性扁平电缆定制厂家「上海缆胜」 | 电竞学校_电子竞技培训学校学院-梦竞未来电竞学校官网 | 玻璃钢型材_拉挤模具_玻璃钢拉挤设备——滑县康百思 | 釜溪印象网络 - Powered by Discuz!| 模切之家-专注服务模切行业的B2B平台!| 济南货架定做_仓储货架生产厂_重型货架厂_仓库货架批发_济南启力仓储设备有限公司 | 橡胶膜片,夹布膜片,橡胶隔膜密封,泵阀设备密封膜片-衡水汉丰橡塑科技公司网站 | 冷水机,风冷冷水机,水冷冷水机,螺杆冷水机专业制造商-上海祝松机械有限公司 | 沈阳液压泵_沈阳液压阀_沈阳液压站-沈阳海德太科液压设备有限公司 | 软文世界-软文推广-软文营销-新闻稿发布-一站式软文自助发稿平台 | LED灯杆屏_LED广告机_户外LED广告机_智慧灯杆_智慧路灯-太龙智显科技(深圳)有限公司 | 冰雕-冰雪世界-大型冰雕展制作公司-赛北冰雕官网 | 结晶点测定仪-润滑脂滴点测定仪-大连煜烁 | 德国GMN轴承,GMN角接触球轴承,GMN单向轴承,GMN油封,GMN非接触式密封 | 预制舱-电力集装箱预制舱-模块化预制舱生产厂家-腾达电器设备 | 好看的韩国漫画_韩漫在线免费阅读-汗汗漫画 | PCB设计,PCB抄板,电路板打样,PCBA加工-深圳市宏力捷电子有限公司 | 纳米二氧化硅,白炭黑,阴离子乳化剂-臻丽拾科技 | 威客电竞(vk·game)·电子竞技赛事官网 | 高低温万能试验机_拉力试验机_拉伸试验机-馥勒仪器科技(上海)有限公司 | 糖衣机,除尘式糖衣机,全自动糖衣机,泰州市长江制药机械有限公司 体感VRAR全息沉浸式3D投影多媒体展厅展会游戏互动-万展互动 | 东莞精密模具加工,精密连接器模具零件,自動機零件,冶工具加工-益久精密 | 【黄页88网】-B2B电子商务平台,b2b平台免费发布信息网 | 颚式破碎机,圆锥破碎机,制砂机-新乡市德诚机电制造有限公司 | 知名电动蝶阀,电动球阀,气动蝶阀,气动球阀生产厂家|价格透明-【固菲阀门官网】 | 郑州外墙清洗_郑州玻璃幕墙清洗_郑州开荒保洁-河南三恒清洗服务有限公司 | 东莞韩创-专业绝缘骨架|马达塑胶零件|塑胶电机配件|塑封电机骨架厂家 | 恒温恒湿试验箱厂家-高低温试验箱维修价格_东莞环仪仪器_东莞环仪仪器 | 自动化生产线-自动化装配线-直流电机自动化生产线-东莞市慧百自动化有限公司 | 电加热导热油炉-空气加热器-导热油加热器-翅片电加热管-科安达机械 | 广州印刷厂_广州彩印厂-广州艺彩印务有限公司 | 好物生环保网、环保论坛 - 环保人的学习交流平台 | 电气控制系统集成商-PLC控制柜变频控制柜-非标自动化定制-电气控制柜成套-NIDEC CT变频器-威肯自动化控制 | 短信群发平台_群发短信软件_短信营销-讯鸽科技 | 高低温老化试验机-步入式/低温恒温恒湿试验机-百科 | 酒水灌装机-白酒灌装机-酒精果酒酱油醋灌装设备_青州惠联灌装机械 | 专业甜品培训学校_广东糖水培训_奶茶培训_特色小吃培训_广州烘趣甜品培训机构 | 高低温万能试验机_拉力试验机_拉伸试验机-馥勒仪器科技(上海)有限公司 | 河南卓美创业科技有限公司-河南卓美防雷公司-防雷接地-防雷工程-重庆避雷针-避雷器-防雷检测-避雷带-避雷针-避雷塔、机房防雷、古建筑防雷等-山西防雷公司 |