Pythonにテキストを言わせるにはどうすればよいですか?
サブプロセスで Festival を使用できますが、それを制御することはできません (または、インタラクティブ モードでは可能ですが、クリーンではありません)。
Python TTS ライブラリはありますか? Festival、eSpeak などの API のようなものですか?
Pythonにテキストを言わせるにはどうすればよいですか?
サブプロセスで Festival を使用できますが、それを制御することはできません (または、インタラクティブ モードでは可能ですが、クリーンではありません)。
Python TTS ライブラリはありますか? Festival、eSpeak などの API のようなものですか?
PyTTS は古いため、PyTTSx パッケージを使用してみてください。PyTTSx は Python 2 で動作します。Python 3 の場合は、PyTTSx3 パッケージをインストールします。
少し安っぽいですが、Mac を使用している場合は、ターミナル コマンドを Python からコンソールに渡すことができます。
ターミナルで次のように入力してみてください。
$ say 'hello world'
そして、それを話すMacからの声があります。Python からは、このようなことは比較的簡単です。
import os
os.system("echo 'hello world'")
os.system("say 'hello world'")
インストール pip インストール pypiwin32
from win32com.client import Dispatch
speak = Dispatch("SAPI.SpVoice").Speak
speak("Ciao")
cmd で gtts モジュールをインストールした後: pip install gtts
from gtts import gTTS
import os
tts = gTTS(text="This is the pc speaking", lang='en')
tts.save("pcvoice.mp3")
# to start the file from python
os.system("start pcvoice.mp3")
簡単な Google でpyTTSとそれに関するいくつかのドキュメントにたどり着きました。ただし、これはメンテナンスされておらず、Microsoft の音声エンジンに固有のもののようです。
少なくとも Mac OS X では、 を使用subprocess
してコマンドを呼び出すことができますsay
。これは、同僚をいじるのには非常に楽しいですが、ニーズにはあまり役に立たない可能性があります。
Festival にもいくつかのパブリック API があるようです。
Festival は BSD ソケットベースのインターフェースを提供します。これにより、Festival がサーバーとして実行され、クライアント プログラムがそれにアクセスできるようになります。基本的に、サーバーは、接続するクライアントごとに新しいコマンド インタープリターを提供します。サーバーはクライアントごとにフォークされますが、これは Festival プロセスが最初から開始されるのを待つよりもはるかに高速です。また、サーバーはより大きなマシンで実行できるため、合成が大幅に高速化されます。 リンキー
フル機能の C++ APIもあり、これを使って Python モジュールを作成できるかもしれません (楽しいです!)。また、Festival は簡素化された C API も提供しています (ドキュメントをスクロールし続けてください)。これを 1 回限り使用できる可能性がありますctypes
。
おそらく、市場の穴を特定しましたか?
Pyttsx3はpyttsxの最新のクローンであり、最新バージョンの Python 3 で変更された python モジュールです!
マルチプラットフォームであり、オフラインで動作し、アクティブ/まだ開発中であり、すべてのPYTHON バージョンで動作します
で簡単にインストールできpip install pyttsx3
、使い方は pyttsx と同じです。
import pyttsx3;
engine = pyttsx3.init();
engine.say("I will speak this text");
engine.runAndWait();
これは確かに最高のマルチプラットフォームオプションだと思います
「Python 固有」のものはないかもしれませんが、KDE および GNOME デスクトップは、アクセシビリティ サポートの一部としてテキスト読み上げを提供し、Python ライブラリ バインディングも提供します。Python バインディングを使用して、テキスト読み上げ用のデスクトップ ライブラリを制御できる場合があります。
JVM で Python の Jython 実装を使用している場合は、FreeTTSシステムを使用できる場合があります。
最後に、OSXとWindowsにはテキスト読み上げ用のネイティブ API があります。ctypes または COM などの他のメカニズムを介して Python からこれらを使用できる場合があります。