1. 程式人生 > >python pyaudio 百度語音識別api 圖靈api 語音聊天機器人

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與後臺建立通

pythonAI實現人臉識別

最近研究了下opencv,本來準備用c++寫一個人臉搜尋的demo,但是有些包下載不下來,所以轉到python,最近python很火,剛好可以研究一下。首先配置完python一些列balabala就不贅述了,網上資料一大堆。這裡有個坑就是,就算電腦裡有opencv,仍然需要用

基於Python的AI介面的語音轉文字的簡單小程式。

匯入 wave #匯入wave Python自帶 來自 pyaudio 匯入 PyAudio , paInt16 #匯入pyaudio模組內的類和常量安裝方法pip install pyaud