【Python入門】日本語の文字起こしのやり方(音声認識:音声ファイル編)サンプルコード

【Pythonプログラミング入門】日本語の文字起こしのやり方( 音声認識:音声ファイル編)Google Speech Recognition - Speech Recognitionの使い方

 

【Pythonで音声認識】簡単!日本語の文字起こし(テープ起こし)

 

ニュース記事を読んでいると、会議の議事録等で活用出来る

文字起こしアプリ(ソフト)

の需要がある旨の記事を見つけました。
よく読んでみるとGoogle Speech-to-Textを利用して作られているアプリを提供している会社の紹介のようでした。

ある程度の精度のある文字起こしのプログラミングを、無料で、手軽に出来る方法はないか?

と思い、調べてみたところ2020年3月14日確認時点では、Google Speech-to-Textは、無料枠の60分を超えると費用が必要そうでした。
その後、しばらく、文字起こしを無料で出来る情報がないか探していると…
ありました。

SpeechRecognition

 

Uberi/speech_recognition | GitHub
(Author:Anthony Zhang・the 3-clause BSD license)
https://github.com/Uberi/speech_recognition

SpeechRecognition
(Author:Anthony Zhang・BSD License)
https://pypi.org/project/SpeechRecognition/
 

試しにサンプルコードを参考に簡単なプログラムを作ってみると

適宜、修正は必要かもしれないが、いいかもしれない

と思ったので、SpeechRecognitionを使って、日本語の音声ファイル(.wav・WAVE形式等)の文字起こし・テキスト化をする方法を動画等でまとめておきました。わずか7行のプログラミングコードでこれだけのことが出来てしまうので凄いですね…
今回は無料で使えるGoogle Speech Recognitionの音声認識エンジンを使用していますが、Speech Recognitionでは様々な音声認識エンジンをサポートしているようです。(有料のAPIを使う場合は、APIキー等が必要そうでした)

 

CMU Sphinx (works offline)
Google Speech Recognition
Google Cloud Speech API
Wit.ai
Microsoft Azure Speech
Microsoft Bing Voice Recognition (Deprecated)
Houndify API
IBM Speech to Text
Snowboy Hotword Detection (works offline)

出典:
Uberi/speech_recognition | GitHub
2020年3月14日利用時点

 

今回は、事前に録音した音声データをテキスト化する方法を試してみましたが、サンプルコードを参考にして色々と試してみると面白そうですね。

 

 

【Python – 音声認識】無料で日本語の文字起こしのやり方(録音・音声ファイル編)- 動画

 


視聴時間:2分31秒

 




 

使ってみた感じでは、概ね上手く文字起こし出来るようですが、適宜修正はする必要はありそうです。

動画を作成する際に遭遇した失敗例
(音声)音声→(文字起こし結果)温泉
(音声)してみる → (文字起こし結果)して見る
(音声)スピーチリコグニション→(文字起こし結果)入り込ん
(音声)ギットハブ→(文字起こし結果)きっと ハグ

上手く認識しにくい場合の要因として、雑音・音の大小・抑揚・間の取り方等が音声認識に影響していそうでした。会議の議事録等の用途で使えるかはわかりませんが、無料でこれだけ出来てしまうので、プログラミング初学者にとってはありがたいですね。

 

Google Colaboratoryサンプルコード・音声ファイル – 動画で作成した日本語の文字起こし用

 

 

動画で使用しているGoogle Colaboratoryのサンプルコードへのリンクはこちら:
tape-transcription-SpeechRecognition.ipynb | Google Colaboratoryの共有リンク

サンプルコードの使い方。音声ファイルのアップロードの仕方等は上記のチュートリアル動画を参照ください。

 

音声ファイルのダウンロード

日本語短文(voice1.wav)

日本語長文(voice2.wav)

 

サンプルコード

 

今回は

Uberi/speech_recognition | GitHub(Author:Anthony Zhang・the 3-clause BSD license)
https://github.com/Uberi/speech_recognition

SpeechRecognition(Author:Anthony Zhang・BSD License)
https://pypi.org/project/SpeechRecognition/

を活用して、Google Speech Recognition の音声認識エンジンを使用した、音声データの文字起こしの入門的なプログラムを実装してみます。

 

① SpeechRecognitionをインストール

 

 

pip install SpeechRecognition

* 動画ではSpeechRecognition-3.8.1をインストールされています。最新版がインストールされると思います。

 

② 文字起こししたい音声ファイルをアップロード

 

 

(今回は.wav形式のファイルの文字起こしをします)

* 詳しくは動画を参照ください。

 

③ 日本語の文字起こし用Pythonプログラム

 

 

.wav形式以外のファイルで試してみたところ、以下のエラーが出力されました
ValueError: Audio file could not be read as PCM WAV, AIFF/AIFF-C, or Native FLAC; check if file is corrupted or in another format
そのため、WAV(WAVE)、AIFF/AIFF-C、FLAC形式のファイルが必要そうです。

import speech_recognition as sr

AUDIO_FILE = 'voice2.wav' #ここを変更。アップロードした音声ファイル(.wav形式)名に変更してください。

r = sr.Recognizer()
with sr.AudioFile(AUDIO_FILE) as source:
audio = r.record(source)

print('音声データの文字起こし結果:\n\n', r.recognize_google(audio, language='ja'))

 




 

by 子供プログラマー | プログラミング入門ウェブ教室

 

 

音声合成も面白いですね。
【PyTorch入門】日本語のテキスト音声合成(E2E-TTS)- ESPnet・Tacotron 2版

 

サンプルコードを試した結果も動画にしておきました。書籍用に作られたDeZeroというオリジナルフレームワークで色々出来るようです。
【発売日も気になる】ゼロから作るDeep Learning 3:フレームワーク編 

 

これだけの内容を無料で… 今はすごい時代ですね
【無料で読める】「Deep Learning」(Ian Goodfellow et al.)関連動画・資料も嬉しい

 

数学は、まだ苦手意識があります。
無料で「21世紀の統計科学Ⅰ・Ⅱ・Ⅲ」東京大学出版会 (3冊分PDF)を読む

 

コンピュータ・プログラミング関連記事