gTTSを使って音声読み上げソフトを作るシリーズですが、今回は名前をつけて保存する機能の実装が出来たので、メモとして残します。完成品は入力したもの保存するボタンを押すとどこに保存するかを聞くウィンドウが表示され名前と場所を決めて保存を押すとその場所に保存されます。
gTTSの使い方は、下記のサイトで詳しく書いているため、是非見てください
ソースコード
import tkinter.filedialog
class Frame(tkinter.Frame):
def __init__(self,master):
super().__init__(master)
master.geometry("600x600")
master.title("棒読み読み上げテスト")
master.minsize(width=600,height=600)
self.voice = []
self.label = tkinter.Label(master,text="棒読み読み上げテスト",font=("",20))
self.label1 = tkinter.Label(master,text="入力欄",font=("",20))
self.input = tkinter.Text(master, font=("",20))
self.button = tkinter.Button(master,text="音声を保存する", command=self.click) #
self.button1 = tkinter.Button(master,text="▶︎", )
self.button2 = tkinter.Button(master,text="■")
self.input.grid(column=0, row=0, sticky=(tk.N, tk.S, tk.E,))
self.button.grid(column=3, row=0, sticky=(tk.N,))
self.button1.grid(column=1, row=0, sticky=(tk.N,))
self.button2.grid(column=2, row=0, sticky=(tk.N,))
def click(self):
self.voice = self.input.get('1.0','end -1c')
voice = gTTS(self.voice,lang='ja')
voice.save(self.voice+".wav")
ini_dir = 'C:\\temp' #追加
ret = tkinter.filedialog.asksaveasfilename(initialdir=ini_dir)#追加
self.save = voice.save
voice.save(ret+".wav")#変更
print(self.voice)
前回のコードに tkinter.filedialog を加えることで名前をつけて保存をすることが可能になります。ini_dir = ‘C:\\temp’では、名前をつけて保存する際にデフォルトで保存する場所を指定します。tkinter.filedialog.asksaveasfilenameでフォルダダイアログを開くことになります。
voice.save = (ret+”.wav”)でつけた名前で保存することが出来ます。
ちなみにキャンセルを押すと保存されませんステキ仕様です。