国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

樹莓派Linux實(shí)現(xiàn)ChatGPT語音交互(語音識(shí)別,TTS)

這篇具有很好參考價(jià)值的文章主要介紹了樹莓派Linux實(shí)現(xiàn)ChatGPT語音交互(語音識(shí)別,TTS)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。


前言

ChatGPT使用想必大家都不陌生,進(jìn)入官網(wǎng),注冊(cè)賬號(hào)即可開始正式的對(duì)話聊天,可是如何使用ChatGPT API,且在Linux環(huán)境下進(jìn)行語音交互呢?碰巧在今年暑期參加物聯(lián)網(wǎng)設(shè)計(jì)競賽有用到這項(xiàng)功能,今天就來教下大家詳細(xì)步驟。


一、ChatGPT API獲取

如何獲取一個(gè)ChatGPT賬號(hào)相比對(duì)大家來說不是一件難事,網(wǎng)上教程很多大家可以搜一下,獲取到一個(gè)賬號(hào)后,可以進(jìn)入https://platform.openai.com/account/api-keys頁面。
linux tts,Linux學(xué)習(xí),linux,chatgpt,交互,語音識(shí)別,python,物聯(lián)網(wǎng),自然語言處理
選擇創(chuàng)建一個(gè)api key 大家一定要保存好這個(gè)密鑰,后續(xù)使用都是利用這個(gè)密鑰。這里需要注意免費(fèi)API每個(gè)賬戶都是有限的,五美元,理論上自己日常使用時(shí)用不完了的。

二、API使用步驟

接下來就讓我們來試驗(yàn)一下API密鑰。首先在Linux環(huán)境下需要安裝openai的包這里我們以樹莓派為例。

pip3 install openai

成功安裝后我們就可以創(chuàng)建一個(gè)Python運(yùn)行一下,而眾所周知,ChatGPT是需要需要使用魔法的,API調(diào)用也不例外。

# -*- coding: utf-8 -*-

import openai

# 設(shè)置OpenAI API密鑰
openai.api_key = 'sk-xxxx'#這里需要替換為你的賬戶API KEY

# 定義初始對(duì)話歷史
conversation_history = [
    {'role': 'system', 'content': 'You are a helpful assistant.'}
]

# 循環(huán)交互
while True:
    # 處理用戶輸入
    user_input = input("User: ")

    # 將用戶輸入添加到對(duì)話歷史中
    conversation_history.append({'role': 'user', 'content': user_input})

    # 發(fā)送聊天請(qǐng)求
    response = openai.ChatCompletion.create(
        model='gpt-3.5-turbo',
        messages=conversation_history,
        max_tokens=100,
        n=1,
        stop=None,
        temperature=0.7
    )

    # 獲取助手的回復(fù)
    assistant_reply = response['choices'][0]['message']['content']

    # 打印助手的回復(fù)
    print("Assistant:", assistant_reply)

    # 將助手的回復(fù)添加到對(duì)話歷史中
    conversation_history.append({'role': 'assistant', 'content': assistant_reply})

    # 檢查用戶是否選擇退出循環(huán)
    if user_input.lower() == 'exit':
        break


通過以上代碼實(shí)現(xiàn)簡單的API調(diào)用,運(yùn)行。
linux tts,Linux學(xué)習(xí),linux,chatgpt,交互,語音識(shí)別,python,物聯(lián)網(wǎng),自然語言處理
問出問題,就可以得到你想要的答案。其中的模型大家也可以根據(jù)需求選用。

三、語音識(shí)別

首先最重要的是外接一個(gè)麥克風(fēng)設(shè)備,對(duì)外界實(shí)時(shí)音頻進(jìn)行識(shí)別,這里樹莓派上使用的無驅(qū)的USB麥克風(fēng)設(shè)備。
linux tts,Linux學(xué)習(xí),linux,chatgpt,交互,語音識(shí)別,python,物聯(lián)網(wǎng),自然語言處理
想要實(shí)現(xiàn)真正意義上的語音交互,就只能從實(shí)時(shí)音頻流中讀取。

這里我們使用的是Google的語音識(shí)別API SpeechRecognition。
首先在終端中安裝相關(guān)包。

pip3 install SpeechRecognition

成功安裝,且麥克風(fēng)設(shè)備安裝完成,我們就可以進(jìn)入下一步。
我們使用一個(gè)Python程序來進(jìn)行實(shí)現(xiàn)。

import speech_recognition as sr

# 創(chuàng)建一個(gè)Recognizer對(duì)象
r = sr.Recognizer()

# 使用麥克風(fēng)錄音
with sr.Microphone() as source:
    print("請(qǐng)說話:")
    audio = r.listen(source)

# 將語音轉(zhuǎn)換為文本
try:
    text = r.recognize_google(audio, language='zh-CN')
    print("你說的是:" + text)
except sr.UnknownValueError:
    print("無法識(shí)別你的語音")
except sr.RequestError as e:
    print("無法連接到Google API,錯(cuò)誤原因:" + str(e))

這里是實(shí)現(xiàn)實(shí)時(shí)音頻的識(shí)別。需要注意的是,speech_recognition的使用也需要Linux環(huán)境下的魔法上網(wǎng)。
運(yùn)行代碼會(huì)出現(xiàn)許多報(bào)錯(cuò)信息,但這些都不影響我們的識(shí)別結(jié)果。
linux tts,Linux學(xué)習(xí),linux,chatgpt,交互,語音識(shí)別,python,物聯(lián)網(wǎng),自然語言處理
當(dāng)顯示請(qǐng)說話示例時(shí)就可以提出問題了。實(shí)測在安靜環(huán)境下識(shí)別速度和識(shí)別準(zhǔn)確率還是非常高的。
識(shí)別返回的結(jié)果保存在text中,只要將text賦值給上述GPT的輸入即可。

三、TTS(語音合成)

要想實(shí)現(xiàn)語音對(duì)話,還需要將GPT回復(fù)的問題經(jīng)過TTS轉(zhuǎn)化為音頻。
這里使用的阿里云的Sambert語音合成,實(shí)測合成速度很快,且語音自然。
首先需要下載Sambert的包

pip3 install dashscope

試驗(yàn)一下

# coding=utf-8

import dashscope
from dashscope.audio.tts import SpeechSynthesizer

dashscope.api_key='your-dashscope-api-key'

result = SpeechSynthesizer.call(model='sambert-zhichu-v1',
                                text='今天天氣怎么樣',
                                sample_rate=48000,
                                format='wav')

if result.get_audio_data() is not None:
    with open('output.wav', 'wb') as f:
        f.write(result.get_audio_data())
print('  get response: %s' % (result.get_response()))

執(zhí)行代碼后就能生成一個(gè)output.wav文件,文件內(nèi)容就是text中問出的問題。

四、音頻播放

得到了生成的音頻文件,我們還需要將他播放出來。
Linux環(huán)境下python播放音頻播放我嘗過各種方式,最后使用效果最好,延時(shí)最低的是使用pygame來播放。
還是以同樣的步驟,安裝pygame。

pip3 install pygame

五、功能整合

將所有功能進(jìn)行整合,即可實(shí)現(xiàn)最后想要實(shí)現(xiàn)的功能。

# -*- coding: utf-8 -*-
import openai
import pygame
from pygame import mixer
import dashscope
from dashscope.audio.tts import SpeechSynthesizer
import speech_recognition as sr
import time
# 創(chuàng)建一個(gè)Recognizer對(duì)象
r = sr.Recognizer()
mixer.init()

# 設(shè)置OpenAI API密鑰
openai.api_key = 'sk-xx'
dashscope.api_key='sk-xx'

# 定義初始對(duì)話歷史
conversation_history = [
    {'role': 'system', 'content': 'You are a helpful assistant.'}
]

# 循環(huán)交互
while True:
    # 處理用戶輸入
    # 使用麥克風(fēng)錄音
    with sr.Microphone() as source:
        print("請(qǐng)開始說話...")
        audio = r.listen(source)

    try:
        # 使用語音識(shí)別引擎將音頻轉(zhuǎn)換為文字
        text = r.recognize_google(audio, language='zh-CN')
        print("識(shí)別結(jié)果:", text)
    except sr.UnknownValueError:
        print("無法識(shí)別音頻")
    except sr.RequestError as e:
        print("請(qǐng)求出錯(cuò):", e)
    user_input = text

    # 將用戶輸入添加到對(duì)話歷史中
    conversation_history.append({'role': 'user', 'content': user_input})

    # 發(fā)送聊天請(qǐng)求
    response = openai.ChatCompletion.create(
        model='gpt-3.5-turbo',
        messages=conversation_history,
        max_tokens=100,
        n=1,
        stop=None,
        temperature=0.7
    )

    # 獲取助手的回復(fù)
    assistant_reply = response['choices'][0]['message']['content']
    result = SpeechSynthesizer.call(model='sambert-zhimiao-emo-v1',
                                text=assistant_reply,
                                sample_rate=48000,
                                format='wav')
    # 打印助手的回復(fù)
    print("Assistant:", assistant_reply)
    if result.get_audio_data() is not None:
        with open('output.wav', 'wb') as f:
            f.write(result.get_audio_data())
    mixer.music.load('output.wav')
    mixer.music.play()

    # 將助手的回復(fù)添加到對(duì)話歷史中
    conversation_history.append({'role': 'assistant', 'content': assistant_reply})
    time.sleep(1)
    while pygame.mixer.music.get_busy()!=True:  # 在音頻播放完成之前不退出程序
        pass
    print('  get response: %s' % (result.get_response()))

運(yùn)行代碼,就可以的到想要得到的效果。因代理問題,最后效果會(huì)有短暫的延時(shí)。

總結(jié)

該案例實(shí)現(xiàn)起來不難,找準(zhǔn)如何使用才是關(guān)鍵所在,這里實(shí)現(xiàn)的用ChatGPT,也可換成文心一言等國內(nèi)大模型,其效果更好,響應(yīng)速度更快。本次的分享也就到這里,如果還有什么問題請(qǐng)各位批評(píng)指教,大家一起相互學(xué)習(xí)。文章來源地址http://www.zghlxwxcb.cn/news/detail-721161.html

到了這里,關(guān)于樹莓派Linux實(shí)現(xiàn)ChatGPT語音交互(語音識(shí)別,TTS)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 基于ARM樹莓派實(shí)現(xiàn)智能家居:語音識(shí)別控制,Socket網(wǎng)絡(luò)控制,火災(zāi)報(bào)警檢測,實(shí)時(shí)監(jiān)控

    基于ARM樹莓派實(shí)現(xiàn)智能家居:語音識(shí)別控制,Socket網(wǎng)絡(luò)控制,火災(zāi)報(bào)警檢測,實(shí)時(shí)監(jiān)控

    目錄 一? ?項(xiàng)目說明 ①? ?設(shè)計(jì)框架 ②? ?功能說明 ③? ?硬件說明 ④? ?軟件說明 二? ?項(xiàng)目代碼 1 mainPro.c 主函數(shù) 2 InputCommand.h 控制設(shè)備頭文件 3 contrlDevices.h 外接設(shè)備頭文件 4 bathroomLight.c 泳池?zé)?5 livingroomLight.c 臥室燈 6 restaurantLight.c 餐廳燈 7 upstairLight.c 二樓燈 8 fire.c 火焰

    2024年02月03日
    瀏覽(43)
  • 基于RAM樹莓派實(shí)現(xiàn)智能家居:語音識(shí)別控制,Socket網(wǎng)絡(luò)控制,火災(zāi)報(bào)警檢測,實(shí)時(shí)監(jiān)控

    基于RAM樹莓派實(shí)現(xiàn)智能家居:語音識(shí)別控制,Socket網(wǎng)絡(luò)控制,火災(zāi)報(bào)警檢測,實(shí)時(shí)監(jiān)控

    目錄 一? ?項(xiàng)目說明 ①? ?設(shè)計(jì)框架 ②? ?功能說明 ③? ?硬件說明 ④? ?軟件說明 二? ?項(xiàng)目代碼 1 mainPro.c 主函數(shù) 2 InputCommand.h 控制設(shè)備頭文件 3 contrlDevices.h 外接設(shè)備頭文件 4 bathroomLight.c 泳池?zé)?5 livingroomLight.c 臥室燈 6 restaurantLight.c 餐廳燈 7 upstairLight.c 二樓燈 8 fire.c 火焰

    2024年02月02日
    瀏覽(30)
  • 【ESP32S3 Sense接入語音識(shí)別+MiniMax模型+TTS模塊語音播報(bào)】

    【ESP32S3 Sense接入語音識(shí)別+MiniMax模型+TTS模塊語音播報(bào)】

    講解視頻: ESP32S3 AI助手使用MiniMax大模型生產(chǎn)工具1 大家好,今天的教程將圍繞如何實(shí)現(xiàn)精準(zhǔn)的語音播報(bào)功能展開,我們用到了ESP32S3 Sense接入語音識(shí)別+MiniMax模型對(duì)話+SNR9816TTS模塊。 目前這是我使用的ESP32S3官方硬件??????(小小的身材有大大的力量)只需要35元加攝像頭麥

    2024年04月12日
    瀏覽(26)
  • 基于百度語音識(shí)別、文心一言大模型、百度語音合成的一套完整的語音交互(利用Python實(shí)現(xiàn))

    基于百度語音識(shí)別、文心一言大模型、百度語音合成的一套完整的語音交互(利用Python實(shí)現(xiàn))

    ? ? ? ?本人小白,因?yàn)楫呍O(shè)項(xiàng)目需要用的語音交互,便查網(wǎng)上的資料利用百度api實(shí)現(xiàn),比較簡單的過程,供大家借鑒批判。 項(xiàng)目框架大致分為3步:(1)百度語音識(shí)別可以將我們輸入的語音轉(zhuǎn)化為文本輸入到文心一言大模型;(2)文心一言大模型根據(jù)輸入以輸出響應(yīng)文本;

    2024年04月17日
    瀏覽(23)
  • 基于樹莓派構(gòu)建深度學(xué)習(xí)語音識(shí)別系統(tǒng)

    +v hezkz17進(jìn)數(shù)字音頻系統(tǒng)研究開發(fā)交流答疑裙 ? 1 Linux 音頻框架如何做語音識(shí)別系統(tǒng)? ? 要在Linux上構(gòu)建一個(gè)語音識(shí)別系統(tǒng),可以使用以下步驟和工具: 安裝音頻框架:在Linux上運(yùn)行語音識(shí)別系統(tǒng)需要一個(gè)適當(dāng)?shù)囊纛l框架。常見的選擇包括 ALSA(Advanced Linux Sound Architecture)和

    2024年02月15日
    瀏覽(24)
  • Unity+chatgpt+webgl實(shí)現(xiàn)聲音錄制+語音識(shí)別

    Unity+chatgpt+webgl實(shí)現(xiàn)聲音錄制+語音識(shí)別

    ? ? ? ? AI二次元女友這個(gè)項(xiàng)目持續(xù)更新,在window端的語音識(shí)別和語音合成的功能,在上一篇博文里已經(jīng)詳細(xì)說明了微軟Azure語音服務(wù)的代碼實(shí)現(xiàn)。也是為了實(shí)現(xiàn)一次代碼,多端復(fù)用這樣的訴求,所以全部的代碼實(shí)現(xiàn)都改成了web api的方式。然而在實(shí)測發(fā)布到webgl的時(shí)候,就發(fā)現(xiàn)

    2024年02月16日
    瀏覽(22)
  • Linux 中的機(jī)器學(xué)習(xí):Whisper——自動(dòng)語音識(shí)別系統(tǒng)

    Linux 中的機(jī)器學(xué)習(xí):Whisper——自動(dòng)語音識(shí)別系統(tǒng)

    Whisper 是一種自動(dòng)語音識(shí)別 (ASR) 系統(tǒng),使用從網(wǎng)絡(luò)收集的 680000 小時(shí)多語言和多任務(wù)數(shù)據(jù)進(jìn)行訓(xùn)練,Whisper 由深度學(xué)習(xí)和神經(jīng)網(wǎng)絡(luò)提供支持,是一種基于 PyTorch 構(gòu)建的自然語言處理系統(tǒng),這是免費(fèi)的開源軟件。 我們用 Ubuntu 22.04 LTS 測試了 Whisper,為避免污染您的系統(tǒng),我們建議

    2024年02月07日
    瀏覽(17)
  • .net實(shí)現(xiàn)簡單語音朗讀(TTS)功能

    首先,添加DotNetSpeech.dll引用,可以在這里直接下載,也可以參照這篇文章說的,在安裝Speech SDK以后,在Common FilesMicrosoft SharedSpeech目錄下面找到SAPI.dll,用Tlbimp.exe工具將該dll轉(zhuǎn)換成.net平臺(tái)下的Assembly---DotNetSpeech.dll。 然后,using DotNetSpeech; 朗讀功能: 注:SpeechVoiceSpeakFlags是

    2024年02月07日
    瀏覽(20)
  • 微軟(TTS)文本轉(zhuǎn)語音服務(wù)API實(shí)現(xiàn)

    微軟(TTS)文本轉(zhuǎn)語音服務(wù)API實(shí)現(xiàn)

    此博客實(shí)現(xiàn)與java實(shí)現(xiàn)微軟文本轉(zhuǎn)語音(TTS)經(jīng)驗(yàn)總結(jié)_java tts_${簡簡單單}的博客-CSDN博客之上,首先感謝博客源碼的提供,本人在上面添加了一些詳細(xì)的注釋,方便大家跟好的理解和使用,畢竟我已經(jīng)用原文調(diào)試了一下午才調(diào)通,一些細(xì)節(jié)的問題給大家標(biāo)注出來,免得浪費(fèi)大家

    2024年02月07日
    瀏覽(22)
  • 4個(gè)步驟實(shí)現(xiàn)Java版的TTS(文字轉(zhuǎn)語音)

    4個(gè)步驟實(shí)現(xiàn)Java版的TTS(文字轉(zhuǎn)語音)

    TTS是Text To Speech的縮寫,即“從文本到語音”,讓機(jī)器能夠說話。 微軟自帶TTS(Text To Speech) 語音引擎,可以將文本轉(zhuǎn)換成語音播報(bào)。 現(xiàn)在通過Java程序(jacob包),利用Windows自帶的TTS實(shí)現(xiàn)語言的播報(bào)。 詳細(xì)步驟如下: 下載jacob jar包和dll文件 將dll放置到相應(yīng)的文件目錄中 將

    2024年02月07日
    瀏覽(20)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包