使用Google Text To Speech發聲 - Python
Google翻譯應該大家都用過,除了可以翻譯之外,還具有把文字轉為聲音的功能,就是所謂的TTS(Text To Speech)。這次我透過Python將這項功能變成可程式化,讓我們可以結合這項功能做到更強的應用。
這裡的操作環境是在Ubuntu作業系統,因為Python已經預先安裝了,這樣就可以不用管Python的問題,在終端機環境直接可以執行Python程式。
1.
程式碼是參考以下來源,範例屬於英文的發音系統,興趣的人不訪可以試試看。不過我們是講中文台灣人,接下來的內容就是要修改一下內容讓他可以做中文的TTS。 原版程式碼出處:
http://alexsleat.co.uk/2011/11/14/python-making-use-of-googles-text-to-speech-translation-tool/
2.
原始程式碼直接執行會有一點問題,沒有辦法聽到聲音,應該是因為url網址有問題,更正後應該是以下格式:
http://translate.google.com/translate_tts?ie=UTF-8&tl=zh&q=隨便打一串中文試試看。
3.
如果執行的過程中發生了pygst錯誤,導致無法順利聽到語音,就必須要安裝一pygst套件,用以下指令安裝完成。
$sudo apt-get install python-gst0.10
4.
由於英文的版本不會有編碼的問題,但這在中文環境中是很重要的,程式裡如果打入中文後應該會被terminal警告編碼錯誤,在開頭要把編碼設定成utf-8就是在程式碼開頭前加上:
#-*- coding=utf-8 -*-
中文版程式碼:
這裡的操作環境是在Ubuntu作業系統,因為Python已經預先安裝了,這樣就可以不用管Python的問題,在終端機環境直接可以執行Python程式。
1.
程式碼是參考以下來源,範例屬於英文的發音系統,興趣的人不訪可以試試看。不過我們是講中文台灣人,接下來的內容就是要修改一下內容讓他可以做中文的TTS。 原版程式碼出處:
http://alexsleat.co.uk/2011/11/14/python-making-use-of-googles-text-to-speech-translation-tool/
2.
原始程式碼直接執行會有一點問題,沒有辦法聽到聲音,應該是因為url網址有問題,更正後應該是以下格式:
http://translate.google.com/translate_tts?ie=UTF-8&tl=zh&q=隨便打一串中文試試看。
- 紅色代表編碼
- 藍色代表語言
- 紫色代表文字
3.
如果執行的過程中發生了pygst錯誤,導致無法順利聽到語音,就必須要安裝一pygst套件,用以下指令安裝完成。
$sudo apt-get install python-gst0.10
4.
由於英文的版本不會有編碼的問題,但這在中文環境中是很重要的,程式裡如果打入中文後應該會被terminal警告編碼錯誤,在開頭要把編碼設定成utf-8就是在程式碼開頭前加上:
#-*- coding=utf-8 -*-
中文版程式碼:
#-*- coding=utf-8 -*- import sys #for cmd line argv import time #for delay import pygst #for playing mp3 stream import gst # " " #convert to google friendly url (with + replacing spaces) tts_string = '隨便打一串中文試試看' print tts_string #use string in combination with the translate url as the stream to be played music_stream_uri = 'http://translate.google.com/translate_tts?ie=UTF-8&tl=zh&q=' + tts_string player = gst.element_factory_make("playbin", "player") player.set_property('uri', music_stream_uri) player.set_state(gst.STATE_PLAYING) print music_stream_uri #requires a delay, if the py process closes before the mp3 has finished it will be cut off. time.sleep(12) |
感謝您的分享 !! 請問Window10 +py35下怎麼安裝gst 和 pygst? Google 的TTS API 是不是還沒support 中文?
回覆刪除