Google音声認識の結果をGoogle翻訳し、Google Text-to-Speechで音声に戻すPythonスクリプト

いい加減タイトルが長くなってきた。
Google翻訳Pythonから使うためのライブラリを使って、音声翻訳をしたということ。

pip3 install SpeechRecognition
pip3 install gTTS
pip3 install googletrans

としてインストール。以下のスクリプト

#!/usr/bin/env python3

# pip3 install SpeechRecognition
# pip3 install gTTS
# pip3 install googletrans

import speech_recognition as sr
import subprocess
from gtts import gTTS
from googletrans import Translator

out_mp3 = '/tmp/synth.mp3'

if __name__ == "__main__":

    # マイクからの音声入力
    r = sr.Recognizer()
    with sr.Microphone() as source:
        print("話しかけてみましょう!")
        r.adjust_for_ambient_noise(source)
        audio = r.listen(source)

    try:
        # 日本語でGoogle音声認識
        recognized = r.recognize_google(audio, language="ja")
    except sr.UnknownValueError:
        print("Google音声認識は音声を理解できませんでした。")
    except sr.RequestError as e:
        print("Google音声認識サービスからの結果を要求できませんでした;"
              " {0}".format(e))
    else:
        # Google翻訳
        print("翻訳前: " + recognized)
        translator = Translator()
        translated = translator.translate(recognized).text
        print("翻訳後: " + translated)

        # Google TTS
        tts = gTTS(text=translated, lang='en')
        tts.save(out_mp3)  # mp3で音声を保存する仕様
        subprocess.run('afplay ' + out_mp3, shell=True)