• 海外赴任時の車の売却はJCM

お気に入り一覧 お気に入り登録 お気に入り解除

Pythonで日本語を音声認識をして音声をテキスト化し、それを音声合成して発音する方法簡単解説【オウム返し by Mac その1:音声認識編】

カテゴリ タイ

音声の入出力(音声認識と音声合成)をPythonを使ってMacで行うことが必要になりました。とりあえずMacに日本語で話しかけると、その音声を認識してテキストデータに変換し、そのテキストデータを音声合成により音声で返してくれる、つまり”オウム返し”をしてくれるコードを作ってみました。

思いの外、簡単にできたのですが、記事としては長くなってしまったので、本記事では音声認識の部分のみを説明します。みなさんと情報の共有できれば良いなと思っています。

この記事を読んで、できるようになる事 speech_recognition_03speech_recognition_03

Mac上でPythonを使って、Macに話しかけたあなたの言葉(日本語)をテキストデータに変換できるようになります。

この次の記事では、Pythonを使って、テキストデータ(日本語)を音声合成により発音する方法を解説します。

環境設定

ぼくの環境は以下の通りです。

OS : MacOS Mojave 10.14.6 Python : version 3.6.5 Hardware : MacBook Pro 2016 IDE : Jupyter Lab

Jupyter Labは比較的新しいIDE(Integrated Development Environment)なので、まだ導入されてない方で、興味のある方は、ぼくの記事JupyterLabとJupyterNotebookの違いを簡単に解説【Mac】をのぞいてみてください。要は、Jupyter Notebookの後継機です。

音声認識 speech_recognition_02speech_recognition_02 概要説明

ここでは、SpeechRecognitionというPythonのライブラリを使い、音声認識を行います。このライブラリはAPI(Application Programming Interface)を基本的にオンラインで使い、音声認識を行うものです。

いくつかのAPIから選択(詳細は後述)できますが、ここではdefaultの"Google Web Speech API"を使用します。このAPIは唯一、登録無しつまり、無料で使えるAPIです。(2020年6月時点)また、音声認識を行うには、インターネットに接続している環境が必要です。
またこれは、使用時間が1時間を超えると有料になるGoogle Cloud Speechとは異なるAPIです。

この記事を書くにあたって、インターネットでライブラリであるSpeechRecognitionと音声認識のためのAPIとの関係を調べたのですが、日本語の資料では、残念ながらきちんと説明しているものを見つけることができませんでした。

最終的に英文の資料をもとにその関係を理解しました。以下に参照した英文の資料のリンクとこの記事にたどり着いた皆さんが知りたいであろう項目をザクっと和訳したものを置いておきます。このことを理解しなくてもこの記事の内容は理解していただけると思いますが、興味のある方は、目を通してみてください。

The Ultimate Guide To Speech Recognition With Python – Real Python
An in-depth tutorial on speech recognition with Python. Learn which speech recognition library gives the best results and build a full-featured "Guess The Word"...
SpeechRecognition
Library for performing speech recognition, with support for several engines and APIs, online and offline.

SpeechRecognitionでは以下のAPI(もしくはEngine)を使用することができる。

CMU SphinxGoogle Speech RecognitionGoogle Cloud Speech APIWit.aiMicrosoft Bing Voice RecognitionHoundity APIIBM Speech to TextSnowboy Hotword Detection

このうち、CMU SphinxとSnowboy Hotwood Detectionはオフラインでも使用できる。この中で、Google Speech Recognitionのみが、登録無しで使用できる。またSpeechRecognitionのdefault設定もGoogle Speech Recognitionである。

実装

それでは、早速実装していきましょう。ライブラリとしては前述の”SpeechRecognition”とマイクを通して音声を入力するために、”pyaudio”を使います。

# SpeechRecognitionのinstall !pip install speechrecognition # pyaudioのinstall !pip install Pyaudio

上記のコードによって、JupyterLabからライブラリのインストールができます。ターミナルから行う場合は、pipの前にある"!"を省略してください。
念の為、2つのライブラリが間違いなくインストールされたか、確認しておきましょう。

# installの確認 !pip list

上記のコードを実行させると、すでにインストールされているライブラリの一覧が表示されます。2つのライブラリがちゃんとストールされているか確認しましょう。

import speech_recognition as sr import subprocess import tempfile # 音声入力 while True: r = sr.Recognizer() with sr.Microphone() as source: print("何かお話しして下さい。") audio = r.listen(source) try: # Google Web Speech APIで音声認識 text = r.recognize_google(audio, language="ja-JP") except sr.UnknownValueError: print("Google Web Speech APIは音声を認識できませんでした。") except sr.RequestError as e: print("GoogleWeb Speech APIに音声認識を要求できませんでした;" " {0}".format(e)) else: print(text) if text == "終わりだよ": break print("完了。")

それでは、上記のコードをJupyterLabから入力して、実行してみましょう。
何かお話ししてください。と催促してくるので、内蔵マイクの近く(ぼくのMacbook Proだと左側スピーカーの近く)で何か日本語を話しかけてください。かなりの精度で日本語を認識してくれます。

ループで催促を続けてくるので、止める時は”終わりだよ”と教えてあげて下さい。

ちなみに15行の"ja-JP"を"en-US"に変更すると、英語として音声認識を行ってくれます。英語の発音に自信のある方は、試してみて下さい。また、その際、23行の"終わりだよ"は何か適当な英語のフレーズに変更して下さいね。

まとめ specch_recognition_04specch_recognition_04

オンラインでAPIの助けを借りているとは言え、こんな簡単だコードでこれだけの精度の音声認識を実装できることは驚きに値すると思います。みなさんはどう思われましたか。

次の記事では、テキストデータを音声合成を行なってMacに音声として返してもらう実装を説明していきたいと思います。

それでは、今回はここまでにしたいと思います。最後までお付き合いいただき、ありがとうございました。さようなら。

参照資料

本記事作成のため、下記の資料を参考にさせていただきました。

https://tam5917.hatenablog.com/entry/2019/04/27/141502https://realpython.com/python-speech-recognition/https://pypi.org/project/SpeechRecognition/

続きを読む

ブログ紹介

みゆきメダカのブログ

https://miyukimedaka.com

20年以上の東南アジアでの海外赴任の経験をもとに、これから海外赴任される方、されている方との有益な情報の共有できればと思っています。

カテゴリ タイ

このブログの最新記事

これで漏れ無し!海外赴任前の準備方法

チャートとチェックリストを使って、
海外赴任前の準備項目を確認しながら情報を収集して準備に備えましょう!

海外赴任準備チェックリストを確認する

書籍版のご案内

海外赴任ガイド 到着から帰国まで

書籍版「海外赴任ガイド」は各種ノウハウや一目で分かりやすい「海外赴任準備チャート」などをコンパクトな一冊にまとめております。海外赴任への不安解消に繋がる道しるべとしてご活用ください。

書籍版の詳細

プログライターの方

海外赴任ブログを登録する

あなたのブログを登録してみましょう!

プログライターの方

海外赴任ガイドのSNS

Twitter アカウントをみる

たいせつにしますプライバシー 10520045