2012-01-29 63 views
5

所以我發現這個代碼:「教」Python其他語言(TTS說...)HowTo?

#!/usr/bin/python 

import sys  #for cmd line argv 
import time  #for delay 
import pygst  #for playing mp3 stream 
import gst  # " " 

#take command line args as the input string 
input_string = sys.argv 
#remove the program name from the argv list 
input_string.pop(0) 

#convert to google friendly url (with + replacing spaces) 
tts_string = '+'.join(input_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?q=' + tts_string 
player = gst.element_factory_make("playbin", "player") 
player.set_property('uri', music_stream_uri) 
player.set_state(gst.STATE_PLAYING) 

#requires a delay, if the py process closes before the mp3 has finished it will be cut off. 
time.sleep(12) 

至極的是谷歌的「文本到語音」功能的使用在谷歌提供翻譯使用Python,但問題是,它不僅可以「說話」的英語很好的例子!以西班牙語傳遞文本(例如)使TTS功能​​在瀏覽器中顯示爲「spanglish」時,TTS功能​​(與本示例中生成的URL格式相比,具有相同的URL格式)可以用西班牙語或任何其他語言想...我試圖改變URL中使用這個網址給程序的語言代碼:

http://translate.google.com/translate_tts?tl=es_MX&q= 

(西班牙識別)

但結果是一樣的,西班牙式英語......的任何想法爲什麼會發生這種情況,以及如何使它像網絡工具一樣在多種語言中「說話」? (或至少另外一個加英文),呵呵

+0

我已經試過相同,但沒有得到任何聲音輸出。誰能告訴我有什麼要求? – VeilEclipse 2013-04-07 09:39:53

回答

5

請勿使用tl=es_MX,只需使用tl=es

POR ejemplo:http://translate.google.com/translate_tts?tl=es&q=que+hora+es

+0

沒有工作...該程序只是不使用該URL輸出任何音頻 – Jmlevick 2012-01-29 08:18:55

+0

更正:它有時會輸出音頻,有時不會與該類型的URL(大部分時間沒有) – Jmlevick 2012-01-29 08:23:54

+1

哦,不!對不起,這是我的互聯網連接XD的問題,你的想法完美無缺! ;) – Jmlevick 2012-01-29 08:34:14