さぼてんの日記

さぼてんです。素人のおっさんが未経験エンジニアとして、コピペで動くプログラムを中心にログを残そうと思います。基本python使います。よろしくおねがいします。

文字起こしするならどっちが使える?SpeechRecognition?それともGCP(Google Cloud Platform)のAPI?by python

f:id:sabotengine:20210607000126p:plain

ライブラリのSpeechRecognitionを無料で使うか。GCPでSpeech to text API を有料覚悟で使うか。

結論、個人利用で、気軽に使うケースで求める結果がゆるいものであれば無料のライブラリでも十分使えると思う。

結局、何に使うのか?手を加える必要がどれだけあるのか?お金をどれだけかけられるか?による。

いずれにせよ、今日現時点では精度の差は微々たるものだと思う。 (わずかではあるが、制限を超えると有料のAPIの方が精度は確かに良い。)

先に利用時のコードを示すが、さらに下段で、ひろゆきの切り抜きyutube動画音声を、それぞれの手段でテキストに変換した例を示す。 差異はわずかなものであることがわかるはずだ。

コード例

pip install SpeechRecognition
import speech_recognition as sr
 
r = sr.Recognizer()
 
with sr.AudioFile("xxxxx.flac") as source:               
    audio = r.record(source)
 #XXXXにファイル名を入れる。

text = r.recognize_google(audio, language='ja-JP')
 
print(text)

SpeechRecognitionについてはこちら。

pypi.org

https://pypi.org/project/SpeechRecognition/

出力例

◯SpeechRecognitionの出力テキストの例

日本であまり情報立ありますか 今でも他人の電話番号とかをネット上にかけまくっても 法に触れないとかっていうのはかわいそうだなと思いますね はい YouTube してます Twitter にて 捨て垢のリプの本名 ばらしてきて住めるんですが 苗木裕子の対象はありますか あ あの本を書くって実は 法律 触れないですよね あのね もうあのその人にバレないようにやるしかないんじゃないすかねひろきと遊びたいんですがどうすればいいですか じゃんけ

APIで出力例

日本で甘い行列ありますかまあでも他人の電話番号とかをネット上に書きまくっても法に触れないとかっていうのはかわいそうだなぁと思いますねはい YouTube してま Twitter にて捨て垢のリプのホームばらしてきてくれるんですがないゆうこの対処法はありますかありませんあの本を書くって実は法律触れないすよねあのねもうあのその人にバレないようにやるしかないんじゃないかねひろきと遊びたいんですがどうすればいいですかじゃんけんぽん
Confidence: 0.9549635648727417

※おわかりのとおり、「甘い法律」を、「あまり情報立」とか「甘い行列」と認識されてしまうぐらい、精度はまだまだ。どちらかといえばAPIの方がまだましか。

注意点

・長い音声ファイルは分割しないと変換しにくい。

APIの方は使いすぎると課金されるので注意が必要。

・また、APIGCPの課金設定もろもと設定やAPI鍵、bucketの設定、サービスアカウントの設定など、設定項目は多い。

・逆に、GCPを使い慣れている場合で、課金に注意を払えるならAPIの方が便利かも。

・本ケースでは、ライブラリのSpeechRecognitionとGCPでSpeech to text API この2つの手段で検討したが、他にもクラウドサービス等手段は あるので色々試してみると良いだろう。

参考

◯今回使わせていただいたyoutube音声

youtubeのURLから音声ファイル作成  ※いかがわしい広告まじ多いけど、ちゃんとかいくぐって使えば便利 www.y2mate.com

◯その他、もっと詳しくPythonで音声からテキストへ変換  self-development.info

Google Cloud Platform の Cloud Speech to Text API f:id:sabotengine:20210607000117p:plain

cloud.google.com どこかでもっと詳しくやりたい。