Kalan's Blog

Kalan 頭像照片,在淡水拍攝,淺藍背景

四零二曜日電子報上線啦!訂閱訂起來

本部落主要是關於前端、軟體開發以及我在日本的生活,也會寫一些對時事的觀察和雜感
本部落格支援 RSS feed(全文章內容),可點擊下方 RSS 連結或透過第三方服務設定。若技術文章裡有程式碼語法等特殊樣式,仍建議至原網站瀏覽以獲得最佳體驗。

目前主題 亮色

我會把一些不成文的筆記或是最近的生活雜感放在短筆記,如果有興趣的話可以來看看唷!

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 即可。以下是範例程式碼:

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

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

Footnotes

  1. https://docs.aws.amazon.com/polly/latest/dg/ssml.html

上一篇

自製簡易收音機

下一篇

雜感(Leaving MySQL)

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

Buy me a coffee