2014-03-03 41 views
0

大家好,我試圖做的文本到語音。我已經試過我曾嘗試pyttsx和系統模塊蟒蛇文本到語音與可讀取變量內容

我想知道是否有辦法讓這兩種模塊讀取變量的內容幾個Python模塊。

name = bob 

import pyttsx 
engine = pyttsx.init() 
engine.say("my name is",name) 
engine.runAndWait() 

我想要做的上面沒有任何工作,它只是讀取字符串,然後退出。有沒有辦法讓這個模塊讀取字符串和變量?

與系統同樣的事情。

from os import system 
system("say hello my name is",name) 
+1

爲什麼矛盾的標籤? –

+0

你運行的是哪個版本的python?如果你不知道,在'蟒蛇-V' –

+0

型我有一個默認自帶2.7的Mac,我也跑3.3我經常使用Python 3.3 – Matt

回答

1

你傳遞了​​錯誤的參數。 say的第二個參數是一個給予話語的名字,而不是更多的話。在連接字符串得到你想要的東西:

engine.say("my name is " + name, "saymyname") 

同樣,os.system只需要一個參數。你需要建立一個單一的字符串傳遞給它:

os.system("say hello my name is " + name) 
+0

謝謝這就是我正在尋找。但還有一個問題。我可以讓這個模塊只讀取一個變量嗎?或者我可以傳遞多個變量? – Matt

+0

您可以根據需要構建一個包含儘可能多變量的字符串。 – user2357112

0

如果你是在Mac上,試試這樣做:

import subprocess 
name = 'bob' 
subprocess.call('say %s' %(name), shell=True) 

這將在終端窗口,其中大聲說出來叫say bob。或者,如user2357112 says,你可以做到以下幾點:

import os 
name = 'bob' 
os.system("say my name is %s" %(name))