iT邦幫忙

0

【Day 04】讓 NPC 開口說話:整合 Web Speech API 實現文字轉語音 (TTS)

  • 分享至 

  • xImage
  •  

一、 前言
在前面幾天,我們成功為「AI 酒館」打造了介面,並實現了讓玩家透過麥克風「動口不動手」的語音輸入功能。既然是沉浸式的酒館,光是聽得懂玩家說話還不夠,我們的 NPC 必須具備「開口說話」的能力!

今天的目標是實作 文字轉語音 (Text-to-Speech, TTS),讓酒館裡的調酒師與吟遊詩人能夠親口把台詞唸出來。同樣地,我們堅持 100% 免費、零成本的原則,直接使用現代瀏覽器內建的 SpeechSynthesis API。

二、 技術選型:瀏覽器內建的 SpeechSynthesis
在前端實現 TTS,常見的有大型雲端 TTS 服務(如 Google Cloud TTS、OpenAI Audio API),但需要繁複的金鑰與付費設定。
而現代瀏覽器(Chrome、Edge、Safari)原生內建的 Web Speech Synthesis API:

零成本、免金鑰:直接調用系統與瀏覽器內建的語音引擎。

開發快速:透過簡單的 JavaScript 介面就能將文字轉為語音串流播放。

三、 實作步驟與核心程式碼
下達 Vibe Coding 需求
請 AI 在對話訊息卡片旁加入朗讀按鈕,並綁定瀏覽器的語音合成物件。

核心朗讀邏輯實作
AI 協助產出的核心語音播放邏輯如下:

TypeScript
const speakMessage = (text: string) => {
if (!('speechSynthesis' in window)) {
alert("您的瀏覽器不支援語音合成功能!");
return;
}

// 停止當前正在朗讀的語音避免重疊
window.speechSynthesis.cancel();

const utterance = new SpeechSynthesisUtterance(text);
utterance.lang = 'zh-TW'; // 設定繁體中文語音
utterance.rate = 1.0; // 語速
utterance.pitch = 1.0; // 音高

window.speechSynthesis.speak(utterance);
};
使用者體驗優化
當玩家點擊對話泡泡旁邊的小喇叭按鈕時,瀏覽器便會流暢地唸出 NPC 的台詞。配合視覺上的播放動畫,酒館的互動感瞬間提升了一個檔次!

https://ithelp.ithome.com.tw/upload/images/20261012/20184225ALMreuxECX.png

四、 今日心得與預告
今日心得:透過 Web Speech API 的 STT 與 TTS 雙向結合,我們的 AI 酒館正式具備了「聽」與「說」的能力!雖然各家作業系統內建的中文語音聽起來有些許機械感,但以零成本的前端專案來說,其互動效果已經相當驚豔。

明日預告 (Day 05):【架構】串接真正的大腦!準備將 Google Gemini API 導入酒館,讓 NPC 不再只是講固定台詞,而是能即時對話!


圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言