paint-brush
pyttsx3 ライブラリを使用した基本的な Python テキスト読み上げチュートリアル@shehzensidiq
37,703 測定値
37,703 測定値

pyttsx3 ライブラリを使用した基本的な Python テキスト読み上げチュートリアル

M Shehzen Sidiq5m2023/01/03
Read on Terminal Reader

長すぎる; 読むには

この投稿では、私が個人的に使用して良好な結果を得たライブラリについて説明します。これは、テキストを音声に変換できる Python ライブラリです。テキストを提供し、そのテキストを音声に変換します。これは、いくつかのテキスト読み上げエンジンのラッパーです。
featured image - pyttsx3 ライブラリを使用した基本的な Python テキスト読み上げチュートリアル
M Shehzen Sidiq HackerNoon profile picture

最初に、この投稿で使用する略語と基本的な用語について説明します。

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で私をフォローしてください。

読んでくれてありがとう、コンテンツを楽しんでください。