Gibt es in Python Bibliotheken, die die Konvertierung von Text in Sprache mithilfe der in Mac Lion integrierten Text-in-Sprache-Engine ermöglichen oder ermöglichen? Ich habe googelt, aber die meisten basieren auf Windows. Ich habe pyttx ausprobiert. Ich habe versucht zu rennen
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()
Aber ich bekomme diese Fehler
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
Wie löse ich diese Fehler?
3 Antworten
Wäre es nicht viel einfacher, dies zu tun?
from os import system
system('say Hello world!')
Sie können man say
eingeben, um andere Dinge anzuzeigen, die Sie mit dem Befehl say
tun können.
Wenn Sie jedoch erweiterte Funktionen wünschen, können Sie auch AppKit
importieren, obwohl einige Kenntnisse in Cocoa / Objective C erforderlich sind.
from AppKit import NSSpeechSynthesizer
speechSynthesizer = NSSpeechSynthesizer.alloc().initWithVoice_("com.apple.speech.synthesis.voice.Bruce")
speechSynthesizer.startSpeakingString_('Hi! Nice to meet you!')
Wenn Sie mehr über NSSpeechSynthesizer erfahren möchten, lesen Sie die Dokumentation von Apple: https://developer.apple.com/library/mac/#documentation/Cocoa/Reference/ApplicationKit/Classes/NSSpeechSynthesizer_Class/Reference/Reference.html
Wenn Sie auf Mac OS X als Plattform abzielen, sind PyObjC und NSSpeechSynthesizer die beste Wahl.
Hier ist ein kurzes Beispiel für Sie
#!/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)
Bitte beachten Sie, dass das AppKit-Modul Teil der PyObjC-Bridge ist und bereits auf Ihrem Mac installiert sein sollte. Sie müssen es nicht installieren, wenn Sie eine vom Betriebssystem bereitgestellte Python (/ usr / bin / python) verwenden.
Dies könnte funktionieren:
import subprocess
subprocess.call(["say","Hello World! (MESSAGE)"])
Verwandte Fragen
Neue Fragen
python
Python ist eine dynamisch typisierte Mehrzweck-Programmiersprache mit mehreren Paradigmen. Es wurde entwickelt, um schnell zu lernen, zu verstehen, zu verwenden und eine saubere und einheitliche Syntax durchzusetzen. Bitte beachten Sie, dass Python 2 ab dem 01.01.2020 offiziell nicht mehr unterstützt wird. Fügen Sie für versionenspezifische Python-Fragen das Tag [python-2.7] oder [python-3.x] hinzu. Wenn Sie eine Python-Variante (z. B. Jython, PyPy) oder eine Bibliothek (z. B. Pandas und NumPy) verwenden, fügen Sie diese bitte in die Tags ein.