Python でテキストを音声に変換する

Manav Narula 2023年1月30日 2021年7月13日
  1. Python で gTTS モジュールを使用してテキストを音声に変換する
  2. Python で pyttsx3 モジュールを使用してテキストを音声に変換する
Python でテキストを音声に変換する

過去数十年にわたる技術の進歩により、音声認識を備えた多くのデバイスがあります。Python には、オーディオオブジェクトを操作できるさまざまなモジュールがあります。一部のモジュールは、書かれたテキストを音声に変換できます。

このチュートリアルでは、Python を使用してテキストを音声に変換する方法について説明します。

Python で gTTS モジュールを使用してテキストを音声に変換する

Google は、テキストを読み、音声出力を提供するために使用する GoogleText-To-Speech と呼ばれる API を作成しました。この API は、gtts と呼ばれる Python モジュールと統合されています。このモジュールは、テキストを音声に変換したり、音声をバイトサイズのオブジェクトに保存することで音声操作を実行したり、最終出力を保存したりすることができます。

gTTS 関数を使用して、テキストを読み取り、それをオーディオオブジェクトに変換するオブジェクトを作成します。この関数では多くのパラメーターを使用できます。slow 引数を使用して、出力の速度を下げることができます。Google API はさまざまな言語をサポートしており、lang パラメーターを使用してサポートされている言語について言及できます。

このメソッドを次のコードで実装します。

from gtts import gTTS
from playsound import playsound

s = gTTS("Sample Text")
s.save('sample.mp3')
playsound('sample.mp3')

上記のコードでは、目的のテキストを読み取るオブジェクトを作成します。save() 関数を使用して音声オーディオを含むこのオブジェクトを保存し、playsound() 関数を使用して再生します。playsound ライブラリからインポートされた playsound() 関数は、オーディオファイルを再生できます。

このモジュールは GoogleAPI を使用してテキストを音声に変換するため、アクティブなインターネット接続が必要になることに注意してください。オフラインで実行する場合は、以下で説明する方法を検討できます。

Python で pyttsx3 モジュールを使用してテキストを音声に変換する

pyttsx3 は、このような変換を実行し、インターネットに接続しなくても機能する別のモジュールです。まず、このモジュールの init() コンストラクターを使用して、pyttsx3.Engine を参照するオブジェクトを作成します。次に、ここの say() 関数は、キューで話される必要のあるテキストを追加します。次に、runAndWait() 関数を使用して、キューからコマンドを再生します。

例えば、

import pyttsx3  
s = pyttsx3.init()  
data = "Sample Text"  
s.say(data)  
s.runAndWait()  

setProperty() メソッドを使用して、最終出力の再生速度などのプロパティを設定できます。このモジュールは、Python 2 および Python 3 と互換性があります。

Author: Manav Narula
Manav Narula avatar Manav Narula avatar

Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.

LinkedIn

関連記事 - Python Audio