73

Pythonにテキストを言わせるにはどうすればよいですか?

サブプロセスで Festival を使用できますが、それを制御することはできません (または、インタラクティブ モードでは可能ですが、クリーンではありません)。

Python TTS ライブラリはありますか? Festival、eSpeak などの API のようなものですか?

4

14 に答える 14

39

PyTTS は古いため、PyTTSx パッケージを使用してみてください。PyTTSx は Python 2 で動作します。Python 3 の場合は、PyTTSx3 パッケージをインストールします。

http://pypi.python.org/pypi/pyttsx/

https://pypi.org/project/pyttsx3/

于 2009-12-01T17:30:43.593 に答える
37

少し安っぽいですが、Mac を使用している場合は、ターミナル コマンドを Python からコンソールに渡すことができます。

ターミナルで次のように入力してみてください。

$ say 'hello world' 

そして、それを話すMacからの声があります。Python からは、このようなことは比較的簡単です。

import os
os.system("echo 'hello world'")
os.system("say 'hello world'") 
于 2013-08-25T11:27:23.630 に答える
30

インストール pip インストール pypiwin32

Windows PC のテキスト読み上げ機能の使用方法

from win32com.client import Dispatch

speak = Dispatch("SAPI.SpVoice").Speak

speak("Ciao")

google text-to-speech API を使用して mp3 を作成し、それを聞く

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")
于 2016-10-30T08:33:59.147 に答える
10

簡単な Google でpyTTSとそれに関するいくつかのドキュメントにたどり着きました。ただし、これはメンテナンスされておらず、Microsoft の音声エンジンに固有のもののようです。

少なくとも Mac OS X では、 を使用subprocessしてコマンドを呼び出すことができますsay。これは、同僚をいじるのには非常に楽しいですが、ニーズにはあまり役に立たない可能性があります。

Festival にもいくつかのパブリック API があるようです。

Festival は BSD ソケットベースのインターフェースを提供します。これにより、Festival がサーバーとして実行され、クライアント プログラムがそれにアクセスできるようになります。基本的に、サーバーは、接続するクライアントごとに新しいコマンド インタープリターを提供します。サーバーはクライアントごとにフォークされますが、これは Festival プロセスが最初から開始されるのを待つよりもはるかに高速です。また、サーバーはより大きなマシンで実行できるため、合成が大幅に高速化されます。 リンキー

フル機能の C++ APIもあり、これを使って Python モジュールを作成できるかもしれません (楽しいです!)。また、Festival は簡素化された C API も提供しています (ドキュメントをスクロールし続けてください)。これを 1 回限り使用できる可能性がありますctypes

おそらく、市場の穴を特定しましたか?

于 2009-10-23T15:08:45.573 に答える
6

PYTTSX3 !

何:

Pyttsx3はpyttsxの最新のクローンであり、最新バージョンの Python 3 で変更された python モジュールです!

どうして:

マルチプラットフォームであり、オフラインで動作し、アクティブ/まだ開発中であり、すべてのPYTHON バージョンで動作します

どのように:

で簡単にインストールできpip install pyttsx3、使い方は pyttsx と同じです。

import pyttsx3;
engine = pyttsx3.init();
engine.say("I will speak this text");
engine.runAndWait();

これは確かに最高のマルチプラットフォームオプションだと思います

于 2018-05-06T02:48:55.313 に答える
2

「Python 固有」のものはないかもしれませんが、KDE ​​および GNOME デスクトップは、アクセシビリティ サポートの一部としてテキスト読み上げを提供し、Python ライブラリ バインディングも提供します。Python バインディングを使用して、テキスト読み上げ用のデスクトップ ライブラリを制御できる場合があります。

JVM で Python の Jython 実装を使用している場合は、FreeTTSシステムを使用できる場合があります。

最後に、OSXWindowsにはテキスト読み上げ用のネイティブ API があります。ctypes または COM などの他のメカニズムを介して Python からこれらを使用できる場合があります。

于 2009-10-23T15:19:27.487 に答える