[PYTHON] Ich ließ die Schönheitskonferenz von Google-Home durchführen

Motivation zur Schöpfung

Sie können Google-Home dazu bringen, mit Python zu sprechen, aber es macht keinen Spaß, nur ein Wort zu sagen. Deshalb wollte ich, dass es wie ein Gespräch spricht

Was ist ein Beauty-Meeting?

Siehe [NEOGEO Meeting Room] in hier

Quelle

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 nach IP-Adresse-Geben Sie home an
googleHome = pychromecast.Chromecast('192.168.0.xx')

if not googleHome.is_idle:
    googleHome.quit_app()
    time.sleep(5)

f = open('./script.txt', 'r') #Bereiten Sie einen Text vor, der die Konversation beschreibt
line = f.readline()

while line:
  #Sprechen Sie Zeile für Zeile
  print(line.strip())

  savefile = "voice-%s.mp3" % datetime.datetime.now().strftime('%Y%m%d-%H%M%S')
  savepath = "/tts/%s" % savefile

  try:
    #Konvertieren Sie in Sprachdaten mit Google Speech in Text und speichern Sie diese
    tts = gTTS(text=line.strip(), lang='ja')
    tts.save(savepath)
  except:
    continue
  finally:
    line = f.readline()

  #Informationen zu MP3-Dateien abrufen
  audio = MP3(savepath)

  #Der obige Speicherpfad wird als Speicherort veröffentlicht, auf den über das Web zugegriffen werden kann
  mp3url = "https://(domainname)/tts/%s" % savefile;

  #Lassen Sie Google Home MP3 sprechen
  googleHome.wait()
  googleHome.media_controller.play_media(mp3url, 'audio/mp3')
  googleHome.media_controller.block_until_active()

  #Wenn das nächste Gespräch beginnt, während Sie sprechen, wird es auf halbem Weg beendet
  #Warten Sie auf die Anzahl der Sekunden der Konversationsdaten
  time.sleep(audio.info.length)

f.close()

Beispiel script.txt

Hallo! Der schöne Charakter der Legende vom hungrigen Wolf, ~
Ich werde es auch tun, wenn ich mir nicht die Mühe mache, es zu erklären ~
Tachibana, ein wunderschöner Charakter der Samurai-Geister

Befehl

docker run -v /script:/data -v /tts/:/tts toru2220/google-home-python python talk.py

Tatsächlicher Betrieb

Recommended Posts

Ich ließ die Schönheitskonferenz von Google-Home durchführen
Ich habe die Körner gezählt