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 即可。以下是範例程式碼:
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 這個服務好用又便宜,感覺可以套用到許多應用當中來增加內容的豐富度。我的話會用在語言學習上,輸入文字後就能聽到即時且接近真實的發音相當方便。
對於中文使用者來說,雖然聲音是可接受的,但畢竟不是台灣人熟悉的腔調,容易造成抗拒,這點蠻可惜的,希望之後有台灣本土的腔調可以使用。