Mac 10.13.6上での動作確認。
Pythonのバージョンは3.7.3。
PythonのSpeechRecognitionライブラリを利用。
Google音声認識のサービスを用いるのでオンライン環境。
pip3 install SpeechRecognition brew install open-jtalk
の後に
#!/usr/bin/env python3 import speech_recognition as sr import subprocess import tempfile def jtalk_run(message, out_wav='/tmp/voice.wav', speed=1.0): jtalk_dir = "/usr/local/Cellar/open-jtalk/1.10_1/" dic_path = jtalk_dir + "/dic" voice_path = jtalk_dir + "/voice/mei/mei_normal.htsvoice" with tempfile.NamedTemporaryFile(mode='w+') as tmp: tmp.write(message) tmp.seek(0) command = 'open_jtalk -x {} -m {} -r {} -ow {} {}'.format( dic_path, voice_path, speed, out_wav, tmp.name) command = command + '; afplay ' + out_wav # print(command) subprocess.run(command, shell=True) if __name__ == "__main__": # マイクからの音声入力 r = sr.Recognizer() with sr.Microphone() as source: print("話しかけてみましょう!") audio = r.listen(source) try: # 日本語でGoogle音声認識 text = r.recognize_google(audio, language="ja-JP") except sr.UnknownValueError: print("Google音声認識は音声を理解できませんでした。") except sr.RequestError as e: print("Google音声認識サービスからの結果を要求できませんでした;" " {0}".format(e)) else: print(text) jtalk_run(text)
のpythonコードを適当な名前で保存して実行したのであった。
以下を参考にさせていただきました。
thr3a.hatenablog.com