亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Python?實(shí)現(xiàn)簡單智能聊天機(jī)器人

 更新時(shí)間:2022年05月30日 11:39:13   作者:??Python編程學(xué)習(xí)圈????  
這篇文章主要介紹了Python?實(shí)現(xiàn)簡單智能聊天機(jī)器人,首先通過計(jì)算機(jī)接收用戶的語音輸入再將用戶輸入的語音輸入轉(zhuǎn)化為文本信息展開實(shí)現(xiàn)過程,需要的小伙伴可以參考一下

簡要說明:

最近兩天需要做一個(gè)python的小程序, 就是實(shí)現(xiàn)人與智能機(jī)器人(智能對話接口)的對話功能,目前剛剛測試了一下可以實(shí)現(xiàn), 就是能夠?qū)崿F(xiàn)個(gè)人與機(jī)器的智能對話(語音交流)。

總體的思路:

大家可以設(shè)想一下, 如果要實(shí)現(xiàn)人與機(jī)器的智能對話, 肯定要有以下幾個(gè)步驟:

  • 計(jì)算機(jī)接收用戶的語音輸入
  • 將用戶輸入的語音輸入轉(zhuǎn)化為文本信息
  • 調(diào)用智能對話接口, 發(fā)送請求文本信息, 獲取接口返回的智能回答文本信息
  • 將回答文本信息轉(zhuǎn)化為語音格式輸出

這里可以安裝很多現(xiàn)成的庫函數(shù), 輔助我們系統(tǒng)的實(shí)現(xiàn)。

需要準(zhǔn)備的環(huán)境

以下是需要安裝的一些python依賴包

  • pip install pyaudio 安裝pyaudio依賴包, 用于錄音、生成wav文件
  • pip install baidu-aip 安裝百度AI的sdk, 調(diào)用語音技術(shù)接口將音頻識(shí)別為文本數(shù)據(jù)返回
  • pip install pyttsx3 安裝pyttsx3依賴包, 將文本信息以音頻的格式播放出來

接下來我會(huì)逐步實(shí)現(xiàn)以上每個(gè)功能,最后再組合起來。

接收用戶的語音輸入,并將其存為音頻文件

import time
import wave
from pyaudio import PyAudio, paInt16
framerate = 16000  # 采樣率
num_samples = 2000  # 采樣點(diǎn)
channels = 1  # 聲道
sampwidth = 2  # 采樣寬度2bytes
FILEPATH = '../voices/myvoices.wav'      #該文件目錄要存在
#用于接收用戶的語音輸入, 并生成wav音頻文件(wav、pcm、mp3的區(qū)別可詳情百度)
class Speak():
    #將音頻數(shù)據(jù)保存到wav文件之中
    def save_wave_file(self, filepath, data):
        wf = wave.open(filepath, 'wb')
        wf.setnchannels(channels)
        wf.setsampwidth(sampwidth)
        wf.setframerate(framerate)
        wf.writeframes(b''.join(data))
        wf.close()
    # 進(jìn)行語音錄制工作
    def my_record(self):
        pa = PyAudio()
        # 打開一個(gè)新的音頻stream
        stream = pa.open(format=paInt16, channels=channels,
                         rate=framerate, input=True, frames_per_buffer=num_samples)
        my_buf = []  # 存放錄音數(shù)據(jù)
        t = time.time()
        print('正在講話...')
       while time.time() < t + 5:  # 設(shè)置錄音時(shí)間(秒)
            # 循環(huán)read,每次read 2000frames
            string_audio_data = stream.read(num_samples)
            my_buf.append(string_audio_data)
        print('講話結(jié)束')
        self.save_wave_file(FILEPATH, my_buf)    #保存下錄音數(shù)據(jù)
????????stream.close()

調(diào)用百度AI接口, 識(shí)別音頻文件并以文本信息返回

之前使用過好幾次百度AI的接口,我的畢業(yè)設(shè)計(jì)<在線課堂學(xué)生異常行為與分析>也是使用到了百度的智能平臺(tái),個(gè)人調(diào)試的話有很多免費(fèi)產(chǎn)品,總體來說百度在人工智能領(lǐng)域做得還是相當(dāng)不錯(cuò)的。

在調(diào)用百度AI接口之前,需要首先進(jìn)入百度AI開放平臺(tái),搜索語音識(shí)別。

 點(diǎn)擊立即使用,沒有賬號(hào)的話可以先創(chuàng)建一個(gè)賬號(hào),然后領(lǐng)取免費(fèi)的資源使用

我之前已經(jīng)創(chuàng)建1個(gè)了, 假設(shè)再次點(diǎn)擊創(chuàng)建

系統(tǒng)會(huì)自動(dòng)勾選上語音識(shí)別接口,直接創(chuàng)建應(yīng)用即可,之后會(huì)有 AppID、 API Key、Secret Key, 之后調(diào)用百度接口直接調(diào)用即可。

可以查看接口文檔,進(jìn)行具體的接口操作

 前奏準(zhǔn)備好, 便可以直接調(diào)用接口進(jìn)行語音識(shí)別

from aip import AipSpeech
""" 你的 APPID AK SK """
APP_ID = '25990397'
API_KEY = 'iS91n0uEOujkMIlsOTLxiVOc'
SECRET_KEY = ''              #此處填寫自己的密鑰
"""調(diào)用接口, 調(diào)用BaiDu AI 接口進(jìn)行錄音、語音識(shí)別"""
client = AipSpeech(APP_ID, API_KEY, SECRET_KEY)
class ReadWav():
    # 讀取文件
    def get_file_content(self, filePath):
        with open(filePath, 'rb') as fp:
            return fp.read()
    def predict(self):
        # 調(diào)用百度AI的接口, 識(shí)別本地文件
         return client.asr(self.get_file_content('../voices/myvoices.wav'), 'wav', 16000, {
            'dev_pid': 1537,
        })
readWav = ReadWav()          #實(shí)例化方法
print(readWav.predict())??????#調(diào)用識(shí)別方法,?并輸出

執(zhí)行結(jié)果 ( 音頻文件存的錄音是: 你叫什么名字呀?)

{'corpus_no': '7087884083428433929', 'err_msg': 'success.', 'err_no': 0, 'result': ['你叫什么名字呀?'], 'sn': '255158586831650276613'}

 請求智能機(jī)器人, 發(fā)送文本信息, 返回智能聊天內(nèi)容

之前我們老師推薦我使用圖靈機(jī)器人的智能聊天,后來發(fā)現(xiàn)認(rèn)證一直無法通過,且需要付費(fèi)。

后來發(fā)現(xiàn)了一個(gè)免費(fèi)、無需注冊、只需要發(fā)送get請求就可實(shí)現(xiàn)聊天的青云客智能機(jī)器人,直接調(diào)用接口即可。

代碼如下:

def talkWithRobot(msg):
    url = 'http://api.qingyunke.com/api.php?key=free&appid=0&msg={}'.format(urllib.parse.quote(msg))
    html = requests.get(url)
    return html.json()["content"]
print(talkWithRobot("你好呀!"))

 輸出:

喲~ 都好都好

 將回答信息轉(zhuǎn)化為語音文件并輸出

此處需要導(dǎo)入pyttsx3包,具體代碼如下:????

import pyttsx3
class RobotSay():
    def __init__(self):
        # 初始化語音
        self.engine = pyttsx3.init()  # 初始化語音庫

        # 設(shè)置語速
        self.rate = self.engine.getProperty('rate')
        self.engine.setProperty('rate', self.rate - 50)
    def say(self, msg):
        # 輸出語音
        self.engine.say(msg)  # 合成語音
        self.engine.runAndWait()
robotSay = RobotSay()
robotSay.say("你好呀")??????????#會(huì)講出????~你好呀(女聲)
復(fù)制代碼

 組合成為自動(dòng)聊天機(jī)器人(它很硬氣)

代碼如下:

def talkWithRobot(msg):
    url = 'http://api.qingyunke.com/api.php?key=free&appid=0&msg={}'.format(urllib.parse.quote(msg))
    html = requests.get(url)
    return html.json()["content"]
robotSay = RobotSay()
speak = Speak()
readTalk = ReadWav()
while True:
    speak.my_record()                               #錄音
    text = readTalk.predict()['result'][0]          #調(diào)用百度AI接口, 將錄音轉(zhuǎn)化為文本信息
    print("本人說:", text)                           #輸出文本信息
    response_dialogue = talkWithRobot(text)         #調(diào)用青云客機(jī)器人回答文本信息并返回
    print("青云客說:", response_dialogue)             #輸出回答文本信息
????robotSay.say(response_dialogue)?????????????????#播放回答信息

 運(yùn)行結(jié)果(發(fā)現(xiàn)它很硬氣)

"""
正在講話...
講話結(jié)束...
本人說: 你好呀。
青云客說: 喲~ 都好都好
正在講話...
講話結(jié)束...
本人說: 你叫什么名字呀?
青云客說: 我是小美人菲菲呀~
正在講話...
講話結(jié)束...
本人說: 哇,那你多美呀。
青云客說: 你似有問題多啲囉!
正在講話...
講話結(jié)束...
本人說: 我好看嗎?
青云客說: 你真是個(gè)地道的美人啊。就是說你只有在地道里才算美人,因?yàn)榈氐览餂]燈
正在講話...
講話結(jié)束...
本人說: 你可真是個(gè)小可愛呀。
青云客說: 呀,你怎么知道。。。我就是啊。。
正在講話...
講話結(jié)束...
本人說: 不和你說了。
青云客說: 不說拉倒
"""

到此這篇關(guān)于Python 實(shí)現(xiàn)簡單智能聊天機(jī)器人的文章就介紹到這了,更多相關(guān)Python 實(shí)現(xiàn)聊天機(jī)器人內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python?pycharm提交代碼遇到?jīng)_突解決方法

    Python?pycharm提交代碼遇到?jīng)_突解決方法

    這篇文章主要介紹了Python?pycharm提交代碼遇到?jīng)_突解決方法,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-08-08
  • Tensorflow矩陣運(yùn)算實(shí)例(矩陣相乘,點(diǎn)乘,行/列累加)

    Tensorflow矩陣運(yùn)算實(shí)例(矩陣相乘,點(diǎn)乘,行/列累加)

    今天小編就為大家分享一篇Tensorflow矩陣運(yùn)算實(shí)例(矩陣相乘,點(diǎn)乘,行/列累加),具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-02-02
  • 如何使用 Python 讀取文件和照片的創(chuàng)建日期

    如何使用 Python 讀取文件和照片的創(chuàng)建日期

    這篇文章主要介紹了如何使用 Python 讀取文件和照片的創(chuàng)建日期,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-09-09
  • Keras使用ImageNet上預(yù)訓(xùn)練的模型方式

    Keras使用ImageNet上預(yù)訓(xùn)練的模型方式

    這篇文章主要介紹了Keras使用ImageNet上預(yù)訓(xùn)練的模型方式,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-05-05
  • Python Pycharm虛擬下百度飛漿PaddleX安裝報(bào)錯(cuò)問題及處理方法(親測100%有效)

    Python Pycharm虛擬下百度飛漿PaddleX安裝報(bào)錯(cuò)問題及處理方法(親測100%有效)

    最近很多朋友給小編留言在安裝PaddleX的時(shí)候總是出現(xiàn)各種奇葩問題,不知道該怎么處理,今天小編通過本文給大家介紹下Python Pycharm虛擬下百度飛漿PaddleX安裝報(bào)錯(cuò)問題及處理方法,真的有效,遇到同樣問題的朋友快來參考下吧
    2021-05-05
  • Python 框架 FastAPI詳解

    Python 框架 FastAPI詳解

    FastAPI 是一個(gè)現(xiàn)代、快速且高性能的 Web 框架,用于 Python 3.6+,基于 Python 類型提示構(gòu)建 API,它通過 Starlette 和 Pydantic 優(yōu)化,支持多種 HTTP 方法、異步編程、數(shù)據(jù)驗(yàn)證和自動(dòng)生成交互式文檔,FastAPI 適合快速開發(fā)高性能、可擴(kuò)展的 Web 服務(wù)
    2024-11-11
  • Python編程實(shí)現(xiàn)刪除VC臨時(shí)文件及Debug目錄的方法

    Python編程實(shí)現(xiàn)刪除VC臨時(shí)文件及Debug目錄的方法

    這篇文章主要介紹了Python編程實(shí)現(xiàn)刪除VC臨時(shí)文件及Debug目錄的方法,涉及Python針對文件與目錄的遍歷、刪除等相關(guān)操作技巧,需要的朋友可以參考下
    2017-03-03
  • python類屬性學(xué)習(xí)深入講解

    python類屬性學(xué)習(xí)深入講解

    這篇文章主要介紹了python類屬性學(xué)習(xí)深入講解,文中對于python的類屬性的理解有正在學(xué)習(xí)python的同學(xué)可以一塊學(xué)習(xí)下
    2021-03-03
  • 關(guān)于python的第三方庫下載與更改方式

    關(guān)于python的第三方庫下載與更改方式

    這篇文章主要介紹了關(guān)于python的第三方庫下載與更改方式,使用python的朋友都知道python有很多非常方便的第三方庫可以使用,那么如果下載這些第三方庫呢,今天小編就帶你們來看看
    2023-04-04
  • Python 實(shí)現(xiàn)Image和Ndarray互相轉(zhuǎn)換

    Python 實(shí)現(xiàn)Image和Ndarray互相轉(zhuǎn)換

    今天小編就為大家分享一篇Python 實(shí)現(xiàn)Image和Ndarray互相轉(zhuǎn)換,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-02-02

最新評(píng)論