譯者 | 崔皓
審校 | 重樓
摘要
這篇文章介紹了如何將文本轉語音(TTS Text-to-Speech)技術應用于ChatGPT,從而提高其用戶體驗。本文認為,通過聽到ChatGPT的解釋,用戶可以獲得更沉浸式和有趣的體驗,特別是在學習新的主題或探索不熟悉話題的時候。文章還詳細介紹了如何使用Python和Google的文本到語音庫(gTTS)將ChatGPT的輸出轉化為語音并大聲播放。最后,作者提出了一個完全無文本的工作流程的可能性,即通過語音到文本庫的方式給ChatGPT提出指令。
開篇
如果你點擊進入這篇文章,我相信你已經使用過ChatGPT一段時間了。我也是 :) 在過去的幾個月里,我一直專注于如何從ChatGPT中獲得更好的輸出——所謂的提示工程——或者通過構建大型語言模型(LLM)進行自定義應用。然而,最近我一直在思考如何提升ChatGPT的用戶體驗。
雖然ChatGPT提供的網絡交互界面很好用,但經過幾次迭代后,它的表現并不那么優秀了。可以想像,如果我們能進一步賦予ChatGPT聲音,讓ChatGPT像AI助手一樣大聲回應你,那是怎樣一種體驗。
在這篇文章中,我們將探討如何在ChatGPT輸出的基礎上添加“文本轉語音”(TTS)功能,從而提升ChatGPT的用戶體驗,這樣就能夠讓我們聽見ChatGPT,而不僅僅是閱讀它了。
讓我們給ChatGPT一個聲音,讓你的交互更具吸引力,更易于訪問,更方便!
文本轉語音技術
文本轉語音技術已經成為提升用戶體驗的工具。正如TTS(Text-to-Speech)的字面意思,這項技術可以將任何輸入文本轉化為語音。如今,TTS技術在我們的日常生活中無處不在,其應用范圍橫跨各個領域。
例如,流行的虛擬助手如Siri、Alexa或Google Home使用TTS來對用戶查詢提供口頭回應。這些設備將基于文本的信息轉化為合成語音,使用戶可以通過語音命令與它們交互并接收聽覺反饋。
流行的GPS導航系統如Google Maps也是一個例子。TTS技術將書面的街道名稱和方向轉化為口頭提示,而不僅僅依賴視覺指示,使駕駛者在接收指導的同時可以專注于道路安全。
無障礙和TTS
將TTS集成到我們的日常生活中的一個顯著優點是它們對無障礙的積極影響。
文本到語音技術為視力障礙者打開了一扇新世界的大門。通過提供書面內容的聽覺輸出,TTS系統使視力障礙者能夠獨立獲取信息。
它使得無物理交互或打字就可以輕松進行對話,這對于運動障礙者來說非常有幫助。此外,TTS在對話自然性方面也表現優秀,對音頻學習者以及閱讀困難者更加友好。
ChatGPT和TTS
給ChatGPT添加一個文本到語音層可以使AI模型更像人類,易于建立更強的連接,使對話內容更有趣和對話過程更加愉快。當學習新的主題或探索不熟悉的話題時,聽到ChatGPT的解釋能夠帶來有趣的沉浸式體驗。這種方式結合文本交互和音頻解釋,ChatGPT打造了一個適應多種學習風格和偏好的全面學習環境。這可以導致增強的知識保留和對討論概念的更深入理解。
例如,當使用ChatGPT學習新語言時,ChatGPT的語音合成能力可以輸出所學語言的準確音頻,從而幫助學習者提高語言技能。這可以提高學習者的語言實踐能力,糾正口音,以及促進整體流利度的發展,提升學習體驗。
架構
在這篇文章中,我們將關注如何將ChatGPT的輸出轉化為語音,并將語音大聲播放。然而,我們也可以讓這個過程形成閉環,也就是用我們的聲音作為輸入給ChatGPT提供提示。
自制圖表。表示 “語音到文本 → ChatGPT API → 文本到語音” 循環
Python集成 TTS 功能
讓我們開始動手,將ChatGPT API和一個TTS庫集成到一個Jupyter筆記本中。
ChatGPT API
下面是用來調用ChatGPT API的基本代碼結構:
import openai
import os
openai.api_key_path = "/path/to/key"
def get_completion(prompt, model="gpt-3.5-turbo"):
"""
This function calls ChatGPT API with a given prompt
and returns the response back.
"""
messages = [{"role": "user", "content": prompt}]
response = openai.ChatCompletion.create(
model=model,
messages=messages,
temperature=0
)
return response.choices[0].message["content"]
user_text = f"""
<Any given text>
"""
prompt = f"""
You will be provided with text delimited by triple quotes.
Can you provide the summary of the text in 1500 words approximately?
\"\"\"{user_text}\"\"\"
"""
# A simple call to ChatGPT
response = get_completion(prompt)
get_completion()函數調用ChatGPT API并給出一個提示。如果提示包含額外的用戶文本,它將用三引號與代碼的其余部分分開。
Google文本轉語音(gTTS)庫
為了將ChatGPT的輸出大聲播放出來,我們將使用開源的gTTs庫。
gTTS庫是Google文本到語音API的一個免費的Python包。它允許你將文本轉化為語音并生成音頻文件。庫的一些關鍵特性和功能包括:
1. 文本到語音轉換:它允許你通過利用Google的文本到語音API的力量將文本轉化為語音。
2. 語言和口音選擇:你可以為生成的語音指定語言和口音。它支持廣泛的語言和口音,如澳大利亞英語等。
3. 音頻文件生成:該庫生成MP3格式的音頻文件,可以保存并播放。
4. 其他音頻特性:它包括其他可能性,如slow選項可以更慢地閱讀輸出文本,或lang_check可以捕獲文本中的任何語言錯誤。
此外,它可以方便地集成到Jupyter筆記本。
給ChatGPT一個聲音
將TTS層實現到ChatGPT是非常直接的。我們只需要將ChatGPT的響應傳遞給gTTS()方法,然后將其保存為.mp3文件。最后,我們可以使用IPython模塊來重復播放響應。
# Import the required module for tts
from gtts import gTTS
# Import the module required to
# play the converted audio
import IPython
prompt = "Can you explain me the latest Python features?"
response = get_completion(prompt)
# Passing the text and language to the engine.
myobj = gTTS(text=response, lang=language)
# Saving the converted audio in a mp3 file
myobj.save("response.mp3")
IPython.display.Audio("response.mp3")
通過使用這種實現,任何ChatGPT調用在我們的Jupyter筆記本中都會如下所示:
自制Jupyter筆記本示例截圖
總結
通過聽的方式獲取ChatGPT的回應,可以加強用戶的理解力。具有語音能力的ChatGPT將加強各個領域應用的可能性,如教育、無障礙技術、客戶支持和語言學習,增強了用戶體驗。通過使用簡單的API調用、gTTS和IPython庫,人們可以通過大聲播放來自ChatGPT的輸出,從而提升ChatGPT的用戶體驗。正如文章中提到的,通過使用語音到文本庫大聲給ChatGPT提供指令,也可以實現無文本輸入的工作流程。
原文標題:Unlocking a New Dimension of ChatGPT: Text-to-Speech Integration,作者:Andrea Valenzuela