python pyaudio 百度語音識別api 圖靈api 語音聊天機器人
最近有點頹,還是寫寫python緩解一下(不務正業x
idea
之前看到有拆筆記本螢幕做魔鏡的覺得特別神奇,當時記得是要樹莓派來著。現在自己搞搞發現百度的語音識別api還不錯,加上以前註冊的圖靈ai大概也能搞個語音聊天機器人,主要還是筆記本上終於帶了一個麥克風(哭泣
然後搞搞就出來了;-P雖然寫得略醜但是還是很有成就感的
Code
# -*- coding: utf-8 -*-
import wave, pyaudio
from aip import AipSpeech
import numpy as np
import requests, json
APP_ID = '不能告訴你'
API_KEY = '不能告訴你'
SECRET_KEY = '不能告訴你'
aipSpeech = AipSpeech(APP_ID, API_KEY, SECRET_KEY)
CHUNK = 1024
FORMAT = pyaudio.paInt16
RATE = 16000
CHANNELS = 1
RECORD_SECONDS = 2
WAVE_OUTPUT_FILENAME = "D:/audio.wav"
def record_wave():
p = pyaudio.PyAudio()
stream = p.open(format = FORMAT,
channels = CHANNELS,
rate = RATE,
input = True ,
frames_per_buffer=CHUNK)
# print "* recording"
frames = []
for i in range(0, int(RATE / CHUNK * RECORD_SECONDS)):
data = stream.read(CHUNK)
frames.append(data)
# print "* done recording"
stream.stop_stream()
stream.close()
p.terminate()
wf = wave.open(WAVE_OUTPUT_FILENAME, 'wb' )
wf.setnchannels(CHANNELS)
wf.setsampwidth(p.get_sample_size(FORMAT))
wf.setframerate(RATE)
wf.writeframes(b''.join(frames))
wf.close()
def get_file_content(filePath):
with open(filePath, 'rb') as fp:
return fp.read()
def identify():
res = aipSpeech.asr(get_file_content(WAVE_OUTPUT_FILENAME), 'wav', 16000, {'lan': 'zh',})
# print res["err_msg"]
position = "廣東省東莞市南城區"
if res["err_msg"] == "success.":
print(res["result"][0])
cont = requests.get('http://www.tuling123.com/openapi/api?key=不能告訴你&info=%s&userid=111' % (res["result"][0], )).content
m = json.loads(cont)
print (m['text'])
def Monitor():
p = pyaudio.PyAudio()
stream = p.open(format=FORMAT,
channels=CHANNELS,
rate=RATE,
input=True,
frames_per_buffer=CHUNK)
# print("開始緩存錄音")
frames = []
rec = []
flag = False
while (True):
# print 'begin '
data = stream.read(CHUNK)
if flag == True:
rec.append(data)
frames.append(data)
audio_data = np.fromstring(data, dtype=np.short)
large_sample_count = np.sum( audio_data > 2000 )
temp = np.max(audio_data)
# print temp
if temp > 2000:
flag = True
# print "檢測到訊號"
# print '當前閾值:',temp
if temp <= 2000:
# record_wave()
if flag == True:
flag = False
wf = wave.open(WAVE_OUTPUT_FILENAME, 'wb')
wf.setnchannels(CHANNELS)
wf.setsampwidth(p.get_sample_size(FORMAT))
wf.setframerate(RATE)
wf.writeframes(b''.join(rec))
wf.close()
rec = []
identify()
stream.stop_stream()
stream.close()
p.terminate()
Monitor()
思想就是簡單粗暴地一小段一小段錄音,如果遇到某一段音量先變大後變小就擷取這一段作為一句話,扔到百度語音api識別,再把識別的結果扔到圖靈api裡面
受網速限制,在家裡測試的時候有點延時,連著說幾句會出現漏掉中間的情況。再加上圖靈機器人又有點傻,迴應是純文字而沒做語音導致體驗不太好
懶得改進了,玩玩還是夠用的
相關推薦
python pyaudio 百度語音識別api 圖靈api 語音聊天機器人
最近有點頹,還是寫寫python緩解一下(不務正業x idea 之前看到有拆筆記本螢幕做魔鏡的覺得特別神奇,當時記得是要樹莓派來著。現在自己搞搞發現百度的語音識別api還不錯,加上以前註冊的圖靈ai大概也能搞個語音聊天機器人,主要還是筆記本上終於帶了一個
python 與 百度人臉識別api
ace tps get 格式 {} 之前 _id urllib 檢測 用python來做人臉識別代碼量少 思路清晰, 在使用之前我們需要在我們的配置的編譯器中通過pip install baidu-aip 即可 from aip import AipFace
Python 利用百度文字識別 API 識別並提取圖片中文字
Python 利用百度文字識別 API 識別並提取圖片中文字 利用百度 AI 開發平臺的 OCR 文字識別 API 識別並提取圖片中的文字。首先需註冊獲取 API 呼叫的 ID 和 key,步驟如下: 開啟百度AI開放平臺,進入控制檯中的文字識別應用(需要有百度賬號)。
python呼叫百度語音識別 api
#!/usr/bin/env python # -*- coding: utf-8 -*- #####################################################
Python呼叫百度語音api做語音識別
安裝:pip install baidu-aip也可以用pycharm自帶的庫管理工具進行安裝:程式碼:在百度ai中心申請一個賬號,開通一下語音識別,把得到的key填進去http://ai.baidu.com/from aip import AipSpeech """ 你的
Python呼叫百度手寫識別API,將手寫筆記圖片轉換成文字
事件起因 家裡人有十幾頁手寫筆記想要轉成文字格式。網上搜了一下發現了百度有手寫文字圖片識別的api,於是拿來試試。 雖然最終效果並不理想,還是當做一次測試記錄一下。 手裡有手寫筆記想要識別一下,也可以直接參考下面程式碼試試。 程式碼 程式碼部分
Unity整合百度語音識別和合成--REST API
直接上unity的C#指令碼程式碼 百度語音識別 using System.Collections; using System.Collections.Generic; using UnityEngine; using System.Xml; using
python利用百度API進行文字識別
首先需要在百度的AI中新建一個應用列表,獲取我們需要的API Key與Secret Key 按照百度官方API的demo,可以獲取到token_id #client_id 為官網獲取的AK, client_secret 為官網獲取的SK host = 'https:/
Python利用百度地圖api批量獲取地址經緯度
req excel文件 經緯度 imp print pen with 文件 key 1.pip安裝xlrd,xlwt,requests模塊. 2.在工程目錄處放置地點Excel文件。 python代碼: #coding:utf-8 import xlrd import x
基於百度語音和圖靈的交互機器人
好用 font 想要 ext auth for res 希望 簡單 1.準備工作: (1)硬件:樹莓派3b usb麥克風 音響 (2) 軟件:百度語音api 圖靈機器人api python2或3(樹莓派自帶)mplayer 申請一個百度語音賬號,創建一個
python利用百度API進行地理編碼(將地名轉換為經緯度資訊)
更新時間:2018-3-28 更新內容:優化部分程式碼,新增mongodb部分的內容 本文章通過講解如何在百度地圖API申請金鑰,然後在python中呼叫API介面將自有資料中的地名轉換為經緯度座標。 執行環境: python3 一、註冊金鑰
Python呼叫百度翻譯api
# _*_ coding: utf-8 _*_ import requests import string import time import hashlib import json #init api_url = "http://api.fanyi.baidu.com/api/tran
python呼叫百度圖片文字識別介面
# 登入百度api應用頁面獲取下面三相內容 APP_ID = 'xxxxx' API_KEY = 'xxxxxxx' SECRET_KEY = 'xxxxxxx' class BaiduImg(): def __init__(self, img_path): self.im
MUI框架-11-MUI前端 + 後臺接入百度文字識別API
MUI框架-11-MUI前端 +php後臺接入百度文字識別API 這裡後臺不止一種,Python,Java,PHP,Node,C++,C# 都可以 這裡使用的是 php 來介紹,已經解決所有問題,因為處理很多錯誤,可能會比較複雜,請大家堅持按步驟來, 大概流程
python百度人臉識別判斷人的喜、怒、哀、樂表情
前言 昨天百度給我手機發了條簡訊,內容如下 ![1236](https://upload-images.jianshu.io/upload_images/8491383-e38231e412bdd9a0.png? imageMogr2/auto-orient/strip%7CimageView2
python使用百度aip文字識別
一、首先要有百度賬號 一般百度賬號都是通用的,如果沒有可以在百度AI開放平臺註冊一個賬號。 地址:http://ai.baidu.com 二、安裝sdk pip install baidu-aip 備註:在pycharm裡也可以在setting----Project I
Python程式設計:通過百度文字識別提取表格資料
百度文字識別文件: https://ai.baidu.com/docs#/OCR-Python-SDK/top 安裝sdk pip install baidu-aip 先建立應用,得到appid 要識別的表格圖片: 程式碼示例 from aip import
trackingjs+websocket+百度人臉識別API,實現人臉簽到
在公司做了個年會的簽到、抽獎系統。用java web做的,用公司的辦公app掃二維碼碼即可簽到,掃完碼就在大螢幕上顯示這個人的照片。之後領導讓我改得高大上一點,用人臉識別來簽到,就把掃二維碼的步驟改成人臉識別。瞭解了相關技術後,大致思路如下:先用websocket與後臺建立通
python之百度AI實現人臉識別
最近研究了下opencv,本來準備用c++寫一個人臉搜尋的demo,但是有些包下載不下來,所以轉到python,最近python很火,剛好可以研究一下。首先配置完python一些列balabala就不贅述了,網上資料一大堆。這裡有個坑就是,就算電腦裡有opencv,仍然需要用
基於Python與百度的AI介面的語音轉文字的簡單小程式。
匯入 wave #匯入wave Python自帶 來自 pyaudio 匯入 PyAudio , paInt16 #匯入pyaudio模組內的類和常量安裝方法pip install pyaud