You can make google-home speak with python, but it's not fun to just say one word, so I wanted to make it speak like a conversation
See [NEOGEO Meeting Room] in here
talk.py
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import time
import datetime
import pychromecast
from gtts import gTTS
from mutagen.mp3 import MP3
#Google by IP address-Specify home
googleHome = pychromecast.Chromecast('192.168.0.xx')
if not googleHome.is_idle:
googleHome.quit_app()
time.sleep(5)
f = open('./script.txt', 'r') #Prepare a text that describes the conversation
line = f.readline()
while line:
#Speak line by line
print(line.strip())
savefile = "voice-%s.mp3" % datetime.datetime.now().strftime('%Y%m%d-%H%M%S')
savepath = "/tts/%s" % savefile
try:
#Convert to voice data with google speech to text and save
tts = gTTS(text=line.strip(), lang='ja')
tts.save(savepath)
except:
continue
finally:
line = f.readline()
#Get mp3 file information
audio = MP3(savepath)
#The above save path is published as a place accessible from the web
mp3url = "https://(domainname)/tts/%s" % savefile;
#Let google home talk mp3
googleHome.wait()
googleHome.media_controller.play_media(mp3url, 'audio/mp3')
googleHome.media_controller.block_until_active()
#If the next conversation starts while you are talking, it will stop halfway, so
#Wait for the number of seconds of conversation data
time.sleep(audio.info.length)
f.close()
Hi! Fatal Fury's beautiful character, ~
I'll do it even if I don't bother to explain it ~
Beautiful character of Samurai Spirits, Tachibana ~
docker run -v /script:/data -v /tts/:/tts toru2220/google-home-python python talk.py