譯者 | 崔皓
審校 | 重樓
摘要
這篇文章介紹了如何將文本轉(zhuǎn)語(yǔ)音(TTS Text-to-Speech)技術(shù)應(yīng)用于ChatGPT,從而提高其用戶體驗(yàn)。本文認(rèn)為,通過(guò)聽到ChatGPT的解釋,用戶可以獲得更沉浸式和有趣的體驗(yàn),特別是在學(xué)習(xí)新的主題或探索不熟悉話題的時(shí)候。文章還詳細(xì)介紹了如何使用Python和Google的文本到語(yǔ)音庫(kù)(gTTS)將ChatGPT的輸出轉(zhuǎn)化為語(yǔ)音并大聲播放。最后,作者提出了一個(gè)完全無(wú)文本的工作流程的可能性,即通過(guò)語(yǔ)音到文本庫(kù)的方式給ChatGPT提出指令。
開篇
如果你點(diǎn)擊進(jìn)入這篇文章,我相信你已經(jīng)使用過(guò)ChatGPT一段時(shí)間了。我也是 :) 在過(guò)去的幾個(gè)月里,我一直專注于如何從ChatGPT中獲得更好的輸出——所謂的提示工程——或者通過(guò)構(gòu)建大型語(yǔ)言模型(LLM)進(jìn)行自定義應(yīng)用。然而,最近我一直在思考如何提升ChatGPT的用戶體驗(yàn)。
雖然ChatGPT提供的網(wǎng)絡(luò)交互界面很好用,但經(jīng)過(guò)幾次迭代后,它的表現(xiàn)并不那么優(yōu)秀了??梢韵胂?,如果我們能進(jìn)一步賦予ChatGPT聲音,讓ChatGPT像AI助手一樣大聲回應(yīng)你,那是怎樣一種體驗(yàn)。
在這篇文章中,我們將探討如何在ChatGPT輸出的基礎(chǔ)上添加“文本轉(zhuǎn)語(yǔ)音”(TTS)功能,從而提升ChatGPT的用戶體驗(yàn),這樣就能夠讓我們聽見ChatGPT,而不僅僅是閱讀它了。
讓我們給ChatGPT一個(gè)聲音,讓你的交互更具吸引力,更易于訪問,更方便!
文本轉(zhuǎn)語(yǔ)音技術(shù)
文本轉(zhuǎn)語(yǔ)音技術(shù)已經(jīng)成為提升用戶體驗(yàn)的工具。正如TTS(Text-to-Speech)的字面意思,這項(xiàng)技術(shù)可以將任何輸入文本轉(zhuǎn)化為語(yǔ)音。如今,TTS技術(shù)在我們的日常生活中無(wú)處不在,其應(yīng)用范圍橫跨各個(gè)領(lǐng)域。
例如,流行的虛擬助手如Siri、Alexa或Google Home使用TTS來(lái)對(duì)用戶查詢提供口頭回應(yīng)。這些設(shè)備將基于文本的信息轉(zhuǎn)化為合成語(yǔ)音,使用戶可以通過(guò)語(yǔ)音命令與它們交互并接收聽覺反饋。
流行的GPS導(dǎo)航系統(tǒng)如Google Maps也是一個(gè)例子。TTS技術(shù)將書面的街道名稱和方向轉(zhuǎn)化為口頭提示,而不僅僅依賴視覺指示,使駕駛者在接收指導(dǎo)的同時(shí)可以專注于道路安全。
無(wú)障礙和TTS
將TTS集成到我們的日常生活中的一個(gè)顯著優(yōu)點(diǎn)是它們對(duì)無(wú)障礙的積極影響。
文本到語(yǔ)音技術(shù)為視力障礙者打開了一扇新世界的大門。通過(guò)提供書面內(nèi)容的聽覺輸出,TTS系統(tǒng)使視力障礙者能夠獨(dú)立獲取信息。
它使得無(wú)物理交互或打字就可以輕松進(jìn)行對(duì)話,這對(duì)于運(yùn)動(dòng)障礙者來(lái)說(shuō)非常有幫助。此外,TTS在對(duì)話自然性方面也表現(xiàn)優(yōu)秀,對(duì)音頻學(xué)習(xí)者以及閱讀困難者更加友好。
ChatGPT和TTS
給ChatGPT添加一個(gè)文本到語(yǔ)音層可以使AI模型更像人類,易于建立更強(qiáng)的連接,使對(duì)話內(nèi)容更有趣和對(duì)話過(guò)程更加愉快。當(dāng)學(xué)習(xí)新的主題或探索不熟悉的話題時(shí),聽到ChatGPT的解釋能夠帶來(lái)有趣的沉浸式體驗(yàn)。這種方式結(jié)合文本交互和音頻解釋,ChatGPT打造了一個(gè)適應(yīng)多種學(xué)習(xí)風(fēng)格和偏好的全面學(xué)習(xí)環(huán)境。這可以導(dǎo)致增強(qiáng)的知識(shí)保留和對(duì)討論概念的更深入理解。
例如,當(dāng)使用ChatGPT學(xué)習(xí)新語(yǔ)言時(shí),ChatGPT的語(yǔ)音合成能力可以輸出所學(xué)語(yǔ)言的準(zhǔn)確音頻,從而幫助學(xué)習(xí)者提高語(yǔ)言技能。這可以提高學(xué)習(xí)者的語(yǔ)言實(shí)踐能力,糾正口音,以及促進(jìn)整體流利度的發(fā)展,提升學(xué)習(xí)體驗(yàn)。
架構(gòu)
在這篇文章中,我們將關(guān)注如何將ChatGPT的輸出轉(zhuǎn)化為語(yǔ)音,并將語(yǔ)音大聲播放。然而,我們也可以讓這個(gè)過(guò)程形成閉環(huán),也就是用我們的聲音作為輸入給ChatGPT提供提示。
自制圖表。表示 “語(yǔ)音到文本 → ChatGPT API → 文本到語(yǔ)音” 循環(huán)
Python集成 TTS 功能
讓我們開始動(dòng)手,將ChatGPT API和一個(gè)TTS庫(kù)集成到一個(gè)Jupyter筆記本中。
ChatGPT API
下面是用來(lái)調(diào)用ChatGPT API的基本代碼結(jié)構(gòu):
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()函數(shù)調(diào)用ChatGPT API并給出一個(gè)提示。如果提示包含額外的用戶文本,它將用三引號(hào)與代碼的其余部分分開。
Google文本轉(zhuǎn)語(yǔ)音(gTTS)庫(kù)
為了將ChatGPT的輸出大聲播放出來(lái),我們將使用開源的gTTs庫(kù)。
gTTS庫(kù)是Google文本到語(yǔ)音API的一個(gè)免費(fèi)的Python包。它允許你將文本轉(zhuǎn)化為語(yǔ)音并生成音頻文件。庫(kù)的一些關(guān)鍵特性和功能包括:
1. 文本到語(yǔ)音轉(zhuǎn)換:它允許你通過(guò)利用Google的文本到語(yǔ)音API的力量將文本轉(zhuǎn)化為語(yǔ)音。
2. 語(yǔ)言和口音選擇:你可以為生成的語(yǔ)音指定語(yǔ)言和口音。它支持廣泛的語(yǔ)言和口音,如澳大利亞英語(yǔ)等。
3. 音頻文件生成:該庫(kù)生成MP3格式的音頻文件,可以保存并播放。
4. 其他音頻特性:它包括其他可能性,如slow選項(xiàng)可以更慢地閱讀輸出文本,或lang_check可以捕獲文本中的任何語(yǔ)言錯(cuò)誤。
此外,它可以方便地集成到Jupyter筆記本。
給ChatGPT一個(gè)聲音
將TTS層實(shí)現(xiàn)到ChatGPT是非常直接的。我們只需要將ChatGPT的響應(yīng)傳遞給gTTS()方法,然后將其保存為.mp3文件。最后,我們可以使用IPython模塊來(lái)重復(fù)播放響應(yīng)。
# 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")
通過(guò)使用這種實(shí)現(xiàn),任何ChatGPT調(diào)用在我們的Jupyter筆記本中都會(huì)如下所示:
自制Jupyter筆記本示例截圖
總結(jié)
通過(guò)聽的方式獲取ChatGPT的回應(yīng),可以加強(qiáng)用戶的理解力。具有語(yǔ)音能力的ChatGPT將加強(qiáng)各個(gè)領(lǐng)域應(yīng)用的可能性,如教育、無(wú)障礙技術(shù)、客戶支持和語(yǔ)言學(xué)習(xí),增強(qiáng)了用戶體驗(yàn)。通過(guò)使用簡(jiǎn)單的API調(diào)用、gTTS和IPython庫(kù),人們可以通過(guò)大聲播放來(lái)自ChatGPT的輸出,從而提升ChatGPT的用戶體驗(yàn)。正如文章中提到的,通過(guò)使用語(yǔ)音到文本庫(kù)大聲給ChatGPT提供指令,也可以實(shí)現(xiàn)無(wú)文本輸入的工作流程。
原文標(biāo)題:Unlocking a New Dimension of ChatGPT: Text-to-Speech Integration,作者:Andrea Valenzuela