日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

Python智能对话机器人实现

發布時間:2023/12/20 python 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python智能对话机器人实现 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前言:看了許多大佬的博客,感覺做一個人工智能對話機器人其實不難。當然,從底層開始自己做是不可能的,那得自己研究語音識別算法,神經網絡建立模型等等,要掌握一大堆超級高深的數學知識底蘊。今天,我做的只是裁縫,將調用各種API,各種第三庫,將這一件衣服給縫的漂漂亮亮的。好了,請看我的!

目錄

  • 需求說明
  • 思路分析
  • 前期準備
  • 具體實現
    • 第一步:
    • 第二步:
    • 第三部
    • 第四步
  • 測試項目
  • 評價反思

需求說明

用Pyhton做一個機器人,就像小愛同學,天貓精靈一樣智能。可以對話,算術,百科,聊天,當然不能像小愛同學一樣語音控制操作硬件,咱們只是從純軟件角度進行實現。

思路分析

Created with Rapha?l 2.2.0開始1、說話2、音頻3、文字4、回復5、音頻6、語音結束

前期準備

準備好 python 編譯器 ,第三方庫有 speech_recognition,baidu-aip,requests、json,pyttsx3 . 其中baidu-aip 需要去 https://ai.baidu.com/ 獲取secret key,key,appID 三者才能使用baidu-aip 。百度的技術確實牛。

1-2:錄音,使用 speech_recognition 包
2-3:百度API 導入模塊:pip install baidu_aip
3-4:圖靈API 導入requests、json模塊
4-5:STT 模塊pyttsx3,S它會將文字轉為語音
5-6:播放

具體實現

第一步:

將我們的聲音轉換成音頻文件,要求請看百度API文檔,如下圖:

使用speech_recognition包進行錄音:

import speech_recognition as sr # Use SpeechRecognition to record 使用語音識別包錄制音頻 def my_record():rate = 16000 #錄音參數必須滿足 16k 采樣率r = sr.Recognizer() #實例化一個識別器rwith sr.Microphone(sample_rate=rate) as source: # 打開麥克風 句柄 sourceprint("please say something")audio = r.listen(source) #通過麥克風進行錄音with open("voices/myvoices.wav", "wb") as f: #設置文件名,類型f.write(audio.get_wav_data()) #將錄音數據轉換成wav格式寫入文件print("錄音完成!") my_record()

如果有看不懂speech_recognition 的用法或注釋或者代碼的,請移步官方教程學習speech_recognition 官方文檔

第二步:

我們已經在上面獲取到了音頻文件,那要怎么把音頻文件轉化為文字呢?在這里,我們就需要調用百度的語音識別API接口,同時我們需要安裝這個接口包,導入模塊:pip install baidu_aip。導入我們需要的模塊名,然后將音頻文件發送給出去,返回文字。https://ai.baidu.com/docs#/ASR-Online-Python-SDK/b3e9a8da 詳細請看技術文檔!
懶得看,看下面截圖也行:


# 音頻文件轉文字:采用百度的語音識別python-SDK # 百度語音識別API配置參數 from aip import AipSpeechAPP_ID = '16847874' API_KEY = '6XATdS1rGo2NV27jHGemaada' SECRET_KEY = '0SINmEBfvotQXl1itzrMcwedaxuBaw4h' client = AipSpeech(APP_ID, API_KEY, SECRET_KEY) path = 'voices/myvoices.wav'# 將語音轉文本STT def listen():# 讀取錄音文件with open(path, 'rb') as fp:voices = fp.read()try:# 參數dev_pid:1536普通話(支持簡單的英文識別)、1537普通話(純中文識別)、1737英語、1637粵語、1837四川話、1936普通話遠場result = client.asr(voices, 'wav', 16000, {'dev_pid': 1537, })result_text = result["result"][0]print("you said: " + result_text)return result_textexcept KeyError:print("KeyError")

第三部

上一步我們已經成功將我們的聲音轉化為文字了,然后我們再調用圖靈機器人的API接口,做自動應答。圖靈機器人對中文的識別準確率高達90%,是目前中文語境下智能度最高的機器人。有很多在Python中使用圖靈機器人API的博客,但都是1.0版本,本博客介紹的是在Python中使用圖靈機器人API v2.0的方法,1.0版本的調用方式已失效。接口文檔如下:
https://www.kancloud.cn/turing/www-tuling123-com/718227


# 與機器人對話:調用的是圖靈機器人 import requests import json# 圖靈機器人的API_KEY、API_URL turing_api_key = "75854c5f9e6d4be" api_url = "http://openapi.tuling123.com/openapi/api/v2" # 圖靈機器人api網址 headers = {'Content-Type': 'application/json;charset=UTF-8'}# 圖靈機器人回復 def Turing(text_words=""):#請求req = {"reqType": 0, # 輸入類型 為文本"perception": {"inputText": {"text": text_words # 輸入文本信息},"selfInfo": { # 客戶端屬性"location": {"city": "新干縣","province": "江西省","street": "善政二路"}}},#用戶參數"userInfo": {"apiKey": turing_api_key, # 你的圖靈機器人apiKey"userId": "cheney007" # 用戶唯一標識(隨便填, 非密鑰)}}req["perception"]["inputText"]["text"] = text_words #給json串賦值response = requests.request("post", api_url, json=req, headers=headers) #向接口網站發送請求response_dict = json.loads(response.text)result = response_dict["results"][0]["values"]["text"] #得到接口的回復進行解析print("AI Robot said: " + result)return result

第四步

們得到了圖靈機器人的回復之后,就需要把結果轉化為語音輸出,從而實現語音交互。在python中我們如何將文字轉為語音并輸出呢?這里就需要用到另一個模塊pyttsx3,它會將文字轉為語音。

import pyttsx3 def speak(workText):# 初始化語音engine = pyttsx3.init() # 初始化語音庫# 設置語速rate = engine.getProperty('rate')engine.setProperty('rate', rate - 50)# 輸出語音engine.say(workText) # 合成語音engine.runAndWait()

測試項目

import recognizer #錄音 import baidu #錄音轉文字 import turing #文字得到回復 import speak #回復的文字轉語音while(True):recognizer.my_record()text=baidu.listen()respondText=turing.Turing(text)print(respondText)speak.Speak(respondText)

評價反思

通過該博客使我學到了不少東西,雖然代碼不是自己一行一行寫出來的,但是確實跟著作者一步步去實現,去弄懂每一行代碼,去查官方文檔等等。最重要的不是記住這些代碼,而是學會如何解決問題,如何去實現,如何去查找資料文檔,如何借助第三方API,等等。這些經驗對我個人來說應該是非常寶貴的,終生受益!再次感謝原作者。下面是原作者博客,如作者不希望我二次翻譯原文,侵刪!
感謝原創作者:
作者:夜空騎士
來源:CSDN
原文:https://blog.csdn.net/NIeson2012/article/details/96476878
版權聲明:本文為博主原創文章,轉載請附上博文鏈接!

總結

以上是生活随笔為你收集整理的Python智能对话机器人实现的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。