最初に、この投稿で使用する略語と基本的な用語について説明します。
TTS が何を意味するかを知らない人のために、それは Text To Speech を意味します。
私たちがやりたいことは、テキストの一部をプログラムに与えることです。プログラムはそのテキストを音声に変換して読み上げてくれます。
つまり、コンピューターに読み上げさせるということです。
現在、この TTS を行うにはさまざまな方法がありますが、ここでは、私が個人的に使用して良好な結果を得ているライブラリについて説明します。
pyttsx3
を使用します。
pyttsx3
とはpyttsx3 は、テキストを音声に変換できる Python ライブラリです。そのため、テキストを提供すると、そのテキストが音声に変換されます。
これは、Microsoft のテキスト読み上げ (TTS) エンジンを含む、いくつかのテキスト読み上げエンジンのラッパーです。
次に、このライブラリを TTS に使用する方法を見てみましょう。
最初に行う必要があるのは、このライブラリをインストールすることです。これは、python インストールにバンドルされているpip
を使用して実行できます。
このインストールの構文は、すべてのpip installs
に似ています。
pip install pyttsx3
このインストールでエラーcmd not found
表示される場合は、次のようにpip
の代わりにpip3
を使用してみてください。
pip3 install pyttsx3
インストール後、次のコマンドを実行して、正常にインストールされたかどうかを確認します。
pip3 freeze
環境にインストールされているすべてのパッケージのリストを返します。このリストにpyttsx3
が見つかった場合、 pyttsx3
は正常にインストールされており、これをプロジェクトで使用する準備ができています。
インストールが完了したら、このライブラリをプロジェクトにインポートし、テキスト読み上げエンジンを初期化する必要があります。このエンジンは最も重要な部分であり、TTS を実行するのはこのエンジンです。
Importing pyttsx3 and initializing the text-to-speech engine:
import pyttsx3
engine = pyttsx3.init()
.init()
は、エンジンを初期化するために呼び出す必要があるメソッドです。
これで、エンジンが初期化されたので、 say(text)
メソッドを呼び出して TTS に使用できます。
engine.say(text)
engine.runAndWait()
この読み上げテキストの速度と音量がデフォルトになり、次の方法で変更できます。
必要なのは、エンジンにいくつかの値を設定することだけです。これは、何を使用するかをエンジンに指示するようなものです。
したがって、次の方法でこれを行う必要があります。
getProperty(name)
を使用してそのプロパティを取得します。setProperty(name, value)
を使用してそのプロパティを設定します。
エンジンのレートとボリュームを設定します。
スピーチの速度と音量の設定:
rate = engine.getProperty('rate')
engine.setProperty('rate', rate-100)
デフォルトではレートは 200 なので、100 に下げます。 rate
は話す速度であり、200 は私たちにとって高いです。だから私たちはそれを下げました。
率は単に、話者が渡されたテキストを話すペースです。
レートを設定したら、最初にボリューム プロパティを取得してから設定することで、ボリュームを変更または設定します。
volume = engine.getProperty('volume')
engine.setProperty('volume', volume+0.50)
デフォルトのボリュームは 1、つまり 100% です。ボリューム プロパティを読み取って受け取った値に .50 を追加することで、150% に増やします。
これで、これら 2 つのプロパティの設定が完了しましたsay()
を呼び出すと、音声には1x
の速度と1.50
の音量というパラメーターが設定されます。
engine.say("Hello, This is the test for the pyttsx3")
engine.runAndWait()
このrunAndWait
は重要です。このエンジンを実行し、渡されたテキストの TTS が完了するまで実行し続けます。
また、音量を変えることで、話している声を変えることもできます。ここには2つのボイスがあります。 1 つは女性の声用で、もう 1 つは男性の声用です。
プロパティの設定には、前に行ったのと同じ構文を使用します。
次の点に注意してください。
voices[0]
は男性の声です。voices[1]
は女性の声です。
声を変えてみましょう:
voices = engine.getProperty('voices')
engine.setProperty('voice', voices[1].id)
選択した音声のid
プロパティを呼び出す必要があり、それで準備は完了です。
上のコードをコピーすると、デフォルトの男性の声が女性の声になります。
パラメータの設定と TTS のテストが完了したら、生成された TTS の音声ファイルを保存できます。
.say()
を呼び出す代わりに、今度は.save_to_file
を呼び出し、テキストと、TTS オーディオを保存する出力ファイルの名前を渡します。
今回は、テキストを読み上げるのではなく、渡した名前のファイルに保存します。
engine.save_to_file("Hello, this is test for pyttsx3.", "test.mp3")
engine.runAndWait()
これを実行すると、生成された TTS をtest.mp3
という名前のファイルが作成されます。
また、pyttsx3 には、ピッチや言語などの設定など、テキスト読み上げの出力をカスタマイズするために使用できる他のいくつかのメソッドとプロパティがあります。これらの詳細については、 pyttsx3のドキュメントを参照してください。
テキストまたはテキストを含むファイルから TTS を生成するのはどれほど簡単でしょうか?
これらの生成された TTS をさまざまな目的で使用できますが、それはあなた次第です。
これで、この TTS を簡単に実行できるようになり、これを使用して素晴らしいプロジェクトを作成できるようになります。
コンテンツが好きで、つながりを保ちたい場合は、 Twitterで私をフォローしてください。
読んでくれてありがとう、コンテンツを楽しんでください。