Python中是否有任何库使用Mac Lion的内置文本到语音引擎来执行或允许文本到语音转换? 我做谷歌,但大多数是基于Windows的。我试过pyttx。 我试着跑
import pyttsx
engine = pyttsx.init()
engine.say('Sally sells seashells by the seashore.')
engine.say('The quick brown fox jumped over the lazy dog.')
engine.runAndWait()
但我得到了这些错误
File "/Users/manabchetia/Documents/Codes/Speech.py", line 2, in <module>
engine = pyttsx.init()
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pyttsx-1.0.egg/pyttsx/__init__.py", line 39, in init
eng = Engine(driverName, debug)
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pyttsx-1.0.egg/pyttsx/engine.py", line 45, in __init__
self.proxy = driver.DriverProxy(weakref.proxy(self), driverName, debug)
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pyttsx-1.0.egg/pyttsx/driver.py", line 64, in __init__
self._module = __import__(name, globals(), locals(), [driverName])
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pyttsx-1.0.egg/pyttsx/drivers/nsss.py", line 18, in <module>
ImportError: No module named Foundation
如何解决这些错误?
答案 0 :(得分:35)
这样做会不会更简单?
from os import system
system('say Hello world!')
您可以输入man say
以查看使用say
命令可以执行的其他操作。
但是,如果您想要一些更高级的功能,虽然需要一些Cocoa / Objective C知识,但也可以导入AppKit
。
from AppKit import NSSpeechSynthesizer
speechSynthesizer = NSSpeechSynthesizer.alloc().initWithVoice_("com.apple.speech.synthesis.voice.Bruce")
speechSynthesizer.startSpeakingString_('Hi! Nice to meet you!')
如果您想了解更多可以使用NSSpeechSynthesizer的内容,请查看Apple的文档:https://developer.apple.com/library/mac/#documentation/Cocoa/Reference/ApplicationKit/Classes/NSSpeechSynthesizer_Class/Reference/Reference.html
答案 1 :(得分:8)
如果您将Mac OS X作为您的平台 - PyObjC和NSSpeechSynthesizer是您最好的选择。
以下是您的简单示例
#!/usr/bin/env python
from AppKit import NSSpeechSynthesizer
import time
import sys
if len(sys.argv) < 2:
text = raw_input('type text to speak> ')
else:
text = sys.argv[1]
nssp = NSSpeechSynthesizer
ve = nssp.alloc().init()
for voice in nssp.availableVoices():
ve.setVoice_(voice)
print voice
ve.startSpeakingString_(text)
while not ve.isSpeaking():
time.sleep(0.1)
while ve.isSpeaking():
time.sleep(0.1)
请注意,AppKit模块是PyObjC网桥的一部分,应该已经安装在Mac上。如果您使用的是OS提供的python(/ usr / bin / python)
,则无需安装它答案 2 :(得分:1)
这可能有效:
public function sendMessage(){
$this->load->library('email');
$config = Array(
'smtp_user' => '******',
'smtp_pass' => '******'
);
$this->email->initialize($config);
$this->email->set_newline("\r\n");
$this->email->from('me@here.comk', 'My Name');
$this->email->to("someone@somewhere.com");
$this->email->subject('A test email from CodeIgniter using Gmail');
$this->email->message("A test email from CodeIgniter using Gmail");
$this->email->send();
}