日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

譯者 | 朱先忠

簡介

本文旨在指導您創建一個簡單而強大的語音助手,以滿足您的喜好。我們將使用兩個強大的工具——Whisper和GPT來實現這一點。你可能已經知道GPT及其功能,但你知道Whisper是什么嗎?

其實,Whisper是AI target=_blank class=infotextkey>OpenAI公司開發的一種高級語音識別模型,可提供準確的音頻到文本轉錄。

我們將帶您完成示例工程構建的每一步,包括編碼說明。最后,您將擁有一款可啟動并正常運行的語音助手。

準備工作

打開AI API密鑰

如果你已經有了OpenAI API密鑰,你可以跳過這一節。

Whisper和GPT API都需要訪問OpenAI API密鑰。與ChatGPT的訂閱需要支持固定費用不同,API密鑰是根據您使用服務的數量進行支付的。

價格還算是比較合理的。在撰寫本文時,Whisper的價格為0.006美元/分鐘,GPT(模型為GPT-3.5-turbo)的價格為0.002/1K代幣(代幣約為0.75個單詞)。

OpenAI的網站(作者自己的圖片)

要獲取密鑰,請首先在OpenAI網站上創建一個帳戶。登錄后,單擊右上角的姓名并選擇查看API密鑰。單擊按鈕“創建新密鑰(Create new secret key)”后,將顯示您的密鑰。請確保保存此密鑰,因為您將無法再次看到它。

示例工程依賴的第三方庫

本小節介紹項目所需的開源代碼庫。本文示例項目包括使用OpenAI開發的Python/ target=_blank class=infotextkey>Python庫執行各種AI任務,以及使用pyttsx3生成語音,使用SoundDevice錄制和播放音頻,使用numpy和scipy進行數學運算等。和往常一樣,在啟動新項目時,您應該在安裝包之前創建一個新的虛擬環境。

示例工程代碼結構

我們的代碼將圍繞一個類構建,總共占用大約90行代碼。在此,假設您對Python類語法知識已經有了基本的理解。整個類結構如下:

其中,Listen方法負責捕獲用戶的語音輸入,并使用Whisper將其轉換為文本。Think方法負責將文本發送到GPT,然后由GPT生成自然語言響應。speak方法負責將響應文本轉換為可播放的音頻。

注意:上圖中最右邊代表系統中的GPT助理部分(負責給出自然語言響應)。

下面這個過程是可以重復執行的,即用戶可以通過發出另一個請求在對話中進行交互。

示例類對應的代碼結構(作者自己的圖片)

__init__函數

此函數負責初始化歷史記錄和設置API密鑰。

我們需要一個歷史記錄來跟蹤以前的消息。這基本上對應于我們助理的短期記憶,可以讓它記住你在談話中早些時候說的話。

listen函數

listen函數工作流程

這個方法相當于我們助理的耳朵功能。

listen函數允許接收來自用戶的輸入。此函數負責記錄麥克風中的音頻并將其轉錄為文本。

listen函數的具體作用如下:

  • 錄制音頻時打印出“Listening…”信息。
  • 使用聲音設備以44100 Hz的采樣率錄制3秒的音頻(或您想要的任何持續時間)。
  • 將錄制的音頻保存為臨時WAV文件中的NumPy數組。
  • 使用OpenAI API的轉錄方法將音頻發送給Whisper,由Whisper將其轉錄。
  • 將轉錄后的文本打印到控制臺,以確認轉錄成功。
  • 以字符串形式返回轉錄后的文本。

在本例中,助理的監聽時長為3秒鐘,但您可以根據需要更改時間。

think函數

think函數工作流程

其實,我們系統中助理的大腦是由GPT驅動的。think函數負責接收助理聽到的內容,并詳細闡述回應內容。

值得注意的是,響應內容不是在您的本地計算機上創建的。文本需要發送到OpenAI的服務器,以便通過API進行處理。然后,響應內容被保存在響應變量中,用戶消息和響應都被添加到歷史記錄中,即助手的短期記憶,負責為GPT模型提供上下文以生成響應。

speak函數

speak函數工作流程

speak函數負責將文本轉換為語音,并將其回放給用戶。此函數只接受一個參數:text。此參數應該是一個字符串,表示要轉換為語音的文本。

當用文本字符串作為參數調用函數時,它會用命令engine=pyttsx3.init()初始化pyttsx3語音引擎。這個對象是引擎用來將文本轉換為語音的主要接口。

然后,該函數指示語音引擎使用命令引擎將提供的文本轉換為語音。這會將提供的要speak(由引擎讀出)的文本排隊。命令engine.runAndWait則負責告訴引擎處理排隊的命令。

值得注意的是,Pyttsx3是在本地處理所有文本到語音的轉換,這在系統的延遲方面是一個顯著的優勢。

最后的潤色

到此,系統中助理部分已經準備好了。接下來,我們只需要創建一個輔助對象,然后開始對話。

對話是一個無限循環,當用戶說出包含“Goodbye(再見)”的句子時,對話就結束了。

個性化體驗技巧

總體來看,自定義GPT助手是輕而易舉的事情!我們構建的代碼是極具模塊化的,它允許您通過添加各種功能進行自定義。以下是一些幫助您進行定制的參考想法:

  • 給助理一個角色:改變最初的提示,讓你的助理扮演你的英語老師、勵志演說家或你能想到的任何其他角色!這方面定制,請查看Awesome ChatGPT Prompts了解更多想法。
  • 更改語言:想使用另一種語言嗎?沒問題!只需將代碼中的英語更改為您想要的語言即可。
  • 構建應用程序:您可以輕松地將助手集成到任何應用程序中。
  • 添加個性:通過添加自定義回復或使用不同的語調和語言風格,讓你的助手擁有獨特的個性。
  • 與其他API集成:將您的助手與其他API進行集成,以提供更高級的功能,如天氣預報或新聞更新等。

結論

在本文中,我們解釋了如何檢索OpenAI API密鑰,并提供了用于捕獲用戶輸入、生成響應以及將文本轉換為語音以進行播放的listen、think和speak等函數的代碼示例。

有了這些知識,您可以開始創建一款適合您自己特定需求的獨特語音助手??傊?,存在無限的可能性:從創建一個個人助理來幫助完成日常任務,到構建一個語音控制的自動化系統……有關本文示例的所有代碼,您可以訪問鏈接的Github存儲庫。

譯者介紹

朱先忠,51CTO社區編輯,51CTO專家博客、講師,濰坊一所高校計算機教師,自由編程界老兵一枚。

原文標題:Creating Your Personalized Voice Assistant with GPT and Whisper,作者:Donato Riccio

分享到:
標簽:GPT
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定