Pythonのgttsモジュールの使い方|Pythonでテキストを音声に変換する方法

スポンサーリンク

今日は、テキストから音声に変換する装置を作ってみましょう。

さあ、はじめましょう

スポンサーリンク

プロジェクトの紹介

Text to Speech は、テキストを人間が理解できる音声に変換することを意味します。このアプリケーションは、文章や単語を正しく読むのが苦手な人にとって、非常に便利なものです。

このアプリケーションでは、ユーザーが入力ボックスにテキストを入力すると、ボタンを1回クリックするだけで、アプリケーションがテキストを音声に変換します。

1. ライブラリのインポート

まず、このアプリケーションに必要な以下のライブラリをインポートします。

  1. tkinter
  2. gTTS
  3. playsound
1
2
3
from tkinter import *
from gtts import gTTS
from playsound import playsound

2. Tkinterの初期ウィンドウを作成する

まず、tkinterのウィンドウを初期化し、ジオメトリや背景色、タイトルなどの設定を追加します。

1
2
3
4
window = Tk()
window.geometry("350x300")
window.configure(bg='#FAD7A0')
window.title("TEXT TO SPEECH")

3. ウィンドウにウィジェットを追加する

次のステップでは、画面上にラベル、入力ボックス、ボタンなどを追加します。そのためのコードを以下に示します。ウィジェットの宣言は、便宜上、ハイライトされています。

このアプリケーションでは、3つのボタンを使用します。ひとつはテキストを再生するボタン、もうひとつはアプリケーションをリセットするボタン、そして最後のひとつはアプリケーションを終了するボタンです。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Label(window, text = "        TEXT TO SPEECH        ", font = "arial 20 bold", bg='black',fg="white").pack()
 
Msg = StringVar()
 
Label(window,text ="Enter Your Text Here: ", font = 'arial 20 bold', fg ='darkgreen').place(x=5,y=60)
 
entry_field = Entry(window, textvariable = Msg ,width ='30',font = 'arial 15 bold',bg="lightgreen")
 
entry_field.place(x=5,y=100)
 
Button(window, text = "PLAY TEXT", font = 'arial 15 bold' , width = '20',bg = 'orchid',fg="white").place(x=35,y=140)
 
Button(window, font = 'arial 15 bold',text = 'RESET APPLICATION', width = '20',bg = 'darkgreen',fg="white").place(x=35 , y = 190)
 
Button(window, font = 'arial 15 bold',text = 'EXIT APPLICATION', width = '20' , bg = 'red',fg="white").place(x=35 , y = 240)

4. テキストを音声に変換するボタン用の関数を作成する

アプリケーションの終了ボタンは、ウィンドウを閉じるだけのシンプルなものです。

次の関数はリセットボタンで、入力ボックスに空白の文字列をセットして内容を削除します。最後の機能は、テキストを音声に変換するために必要なものです。

    1. get : エントリーボックスに入力されたテキストを取得し、変数に格納します。
    1. gTTS : 関数に渡されたメッセージを音声に変換します。
    1. save : スピーチを mp3 フォーマットで保存します。
  1. playsound` : 前のステップで保存した音声を再生します。
1
2
3
4
5
6
7
8
9
10
11
def Text_to_speech():
    Message = entry_field.get()
    speech = gTTS(text = Message)
    speech.save('data.mp3')
    playsound('data.mp3')
 
def Exit():
    window.destroy()
 
def Reset():
    Msg.set("")

次のステップでは、ボタン宣言に command プロパティを追加して、各ボタンに機能を結びつけます。

テキストを音声に変換する最終コード

このプロジェクトの最終的なコードは以下のとおりです。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
from tkinter import *
from gtts import gTTS
from playsound import playsound
 
def Text_to_speech():
    Message = entry_field.get()
    speech = gTTS(text = Message)
    speech.save('data.mp3')
    playsound('data.mp3')
 
def Exit():
    window.destroy()
 
def Reset():
    Msg.set("")
     
window = Tk()
window.geometry("350x300")
window.configure(bg='#FAD7A0')
window.title("TEXT TO SPEECH")
  
Label(window, text = "        TEXT TO SPEECH        ", font = "arial 20 bold", bg='black',fg="white").pack()
Msg = StringVar()
Label(window,text ="Enter Your Text Here: ", font = 'arial 20 bold', fg ='darkgreen').place(x=5,y=60)
 
entry_field = Entry(window, textvariable = Msg ,width ='30',font = 'arial 15 bold',bg="lightgreen")
entry_field.place(x=5,y=100)
 
Button(window, text = "PLAY TEXT", font = 'arial 15 bold' , command = Text_to_speech ,width = '20',bg = 'orchid',fg="white").place(x=35,y=140)
Button(window, font = 'arial 15 bold',text = 'RESET APPLICATION', width = '20' , command = Reset,bg = 'darkgreen',fg="white").place(x=35 , y = 190)
Button(window, font = 'arial 15 bold',text = 'EXIT APPLICATION', width = '20' , command = Exit, bg = 'red',fg="white").place(x=35 , y = 240)
 
window.mainloop()

サンプル出力映像

以下のビデオでは、アプリケーションの動作が確認できます。ぜひご覧ください。

まとめ

Python tkinterの音声合成プロジェクトが完成しました。気に入っていただけたでしょうか?

お読みいただきありがとうございました。

タイトルとURLをコピーしました