半熟前端

軟體工程師 / 台灣人 / 在前端的路上一邊探索其他領域的可能性

本部落格使用 Gatsby 製作

本部落格有使用 Google Analytic 及 Cookie

雜談

Amazon Polly - 文字轉聲音,效果十分顯著

Amazon Polly - 文字轉聲音,效果十分顯著

Polly 是 Amazon 雲端平台的其中一個服務,可以將文字轉為聲音(text to speech)。雖然文字轉聲音這件事並不稀奇,Google 翻譯也能輕鬆做到,不過 Polly 可以根據文字盡可能發出自然的聲音,對語言學習者來說是一大福音。除此之外能夠應用的範圍也很廣,例如字幕轉為聲音、腳本、旁白、對白,甚至直接用 Polly 來錄 Podcast 也不無可能。想要試試看效果的讀者可以到 Amazon Polly

常用語言測試

以使用範圍來說,我會想要測試中文、英文、日文、韓文。這邊放上幾個我用 Polly 轉換出來的聲音樣本:

  • 日文
  • 中文(華語)
  • 英文(美式)
  • 英文(英式)
  • 韓文

英文就不用說了,支援相當豐富,可以選擇美式跟英式發音之外還有不同的人聲可以搭配,聽起來相當自然,沒有認真聽很容易以為是真人;中文聽起來就是有點不自然,應該不是台灣華語,但也不像普通話;日文的支援程度超乎我的想像,句子聽起來相當通順之外,如果有英文參雜的情況下,Polly 甚至會將英文轉為日式發音後再唸出來。舉例來說:「この件についてはbug ticket必要でしょうか?(這個問題需要開票嗎?)」,Polly 念出來會是:

雖然沒辦法像聲優那樣根據場景有豐富的聲音變化,但對我來說已經是相當實用的工具了。

Polly 有提供兩種選項,一種是「神經語音」,會盡可能發出自然、最接近真人的聲音;另外一種是「標準」,就是聽起來已經算蠻自然的人聲,但還是聽得出來機械音,目前只有部分的語言有支援「神經語音」。在中英日韓當中,英日韓都有支援「神經」。

Polly 支援 SSML(Speech Synthesis Markup Language)1,可以用標記的方式針對特定的句子做停頓,或是針對場景改變人聲的語調等等,讓聲音更有臨場感。

定價

定價表可以參考官方網站。每一百萬個字元 4 美金,用神經語音的話則是 16 美金,除非是產品本身有大量文字轉聲音的需求,不然一般當作輔助使用的話應該是非常便宜的價格,獨立開發者也能輕鬆使用。

每月需依照所處理的文字字元數量付費。Amazon Polly 標準語音的語音或語音標記請求是以每 1 百萬個字元 4.00 USD 計費 (超出免費方案時)。Amazon Polly 神經語音的語音或語音標記請求是以每 1 百萬個字元 16.00 USD 計費 (超出免費方案時)。

串接(以 node.js 為例)

要串接 Polly 很簡單,只要透過 aws-sdk 即可。以下是範例程式碼:

js
polly.synthesizeSpeech(
{
Text: "おはようございます",
TextType: "text",
VoiceId: "Takumi",
LanguageCode: "ja-JP",
OutputFormat: "mp3",
},
(err, data) => {
if (err) {
console.log(err);
}
fs.writeFileSync("./result.mp3", data.AudioStream);
}
);
polly.startSpeechSynthesisTask()

這樣子寫會將轉換後的聲音放入 result.mp3 當中了。

總結

Polly 這個服務好用又便宜,感覺可以套用到許多應用當中來增加內容的豐富度。我的話會用在語言學習上,輸入文字後就能聽到即時且接近真實的發音相當方便。

對於中文使用者來說,雖然聲音是可接受的,但畢竟不是台灣人熟悉的腔調,容易造成抗拒,這點蠻可惜的,希望之後有台灣本土的腔調可以使用。

如果覺得這篇文章對你有幫助的話,可以考慮到下面的連結請我喝一杯 ☕️
可以讓我平凡的一天變得閃閃發光 ✨

Buy me a coffee