私は人工的にインテリジェントなプログラム(本当に大きなものでも特別なものでもない)を作成しようとしていますが、声を出したいと思っていました(だれがそうしませんか?)。 espeak、festival、gTTSを調査しましたが、それらはナイスで使いやすいですが、それが理にかなっている場合、私が本当に誇りに思うほど現実的ではありません。もっと現実的なものを探していました。このような
from gtts import gTTS
tts = gTTS(text='what to say', lang='en')
tts.save('/path/to/file.mp3')
gTTSは正常に動作します。大好きです。それは現実的ですが、インターネットが必要です。問題は、アプリケーションを可能な限り独立させることです。そして、私はインターネットアクセスに依存するのが嫌いです。
他のオプションはありますか?
PS:現在Linuxを実行しているので、OSに別のソリューションがあるかもしれません。
ドキュメント に従って、pyttsx3 2.5を使用してみてください。
gTTSはpython3で完全に動作しますが、音声データを取得するためにGoogleに依存しているため、動作するためにインターネット接続が必要です。
Python 2および3
それをインストールするには:
pip install pyttsx3
それを使用することは次のように簡単である必要があります。
import pyttsx3;
engine = pyttsx3.init();
engine.say("I will speak this text");
engine.runAndWait() ;
編集1-音声の変更
ロボットの声を少なくするには、次のように声を変更してみてください。
engine.setProperty('voice', voice.id)
利用可能な音声を取得するには
voices = engine.getProperty('voices')
この質問で説明されているように、利用可能なさまざまな音声を試すことができます: PythonのPYTTSXモジュールで音声を変更する 。
編集2-音声エンジンの選択
ライブラリは次のエンジンをサポートしています。
Espeakがあまり自然でない場合は、Windowsを使用している場合はsapi5を、Mac OS Xを使用している場合はnsssを試すことができます。
Initメソッドでエンジンを指定できます。例:
pyttsx3.init(driverName='sapi5')