Help us understand the problem. What is going on with this article?

【GCP】超超初心者がGoogle speech api を使うところ。(wav形式)

More than 1 year has passed since last update.

目的

wavファイルの音声データのテキスト化

文字おこしをしなければならない状況になっため、めんどくさいのでどうにか機械でできないかと思いgoogle speech apiの利用を考えました。
実際使えるようになるのに1週間かかってしまいましたが・・・・

この内容は他の記事とは違った部分だけ書きますので、準備段階はほかの記事をご参照ください。

準備

・GCPでアカウント作成
・Speech apiの有効化
・storageでバケット作成(音声データアップロード)
・サービスアカウントの作成(jsonファイルの用意)
・音声ファイルの用意(自分はサンプルのFLACファイルとWAVを使用しました)
※音声ファイルはビットレートを16,000もしくは44100にして使用しています。
※音声ファイルはモノラルにしておいてください。

参照記事

Google Cloud Speech API を使った音声の文字起こし手順
超初心者でもgoogle-cloud-speechを使えるが、つまずいた所はある。
Google Cloud Speech APIで音声の自動文字起こし
Cloud Speech API の基本

手順

基本は参照指示に沿って作業を行ったのだが、異なる部分が出てきた。

google.api_core.exceptions.PermissionDenied: 403 The caller does not have permission

これは@hanlioさんとは違うかな?と考えてしまった。また日をまたいで何回かサービスアカウントを作成しなおしたり
していたので問題ないかと思っていた。

なので同じくteratailで質問をすると、
403 The caller does not have permission
前の記事と同じですよ!と回答をいただく。(ごめんなさい!)

一度上記のエラーが出た後に、サービスアカウントを作り直したら、このエラーは出なくなりました。

さぁ次のエラーです
google.api_core.exceptions.InvalidArgument:
400 sample_rate_hertz (16000) in RecognitionConfig must either be unspecified or match the value in the FLAC header (44100).

これは文字通りサンプリングレートをチェックしてほしいとのことで、このときはまだ音声ファイルの調整はしてなかったので
音声ファイルのサンプリングレートを確認の上、作成したpythonファイルと合わせます。

さぁ、サンプルレートを合わせました!

そしたら次のエラーです(泣)

google.api_core.exceptions.InvalidArgument: 400 Invalid audio channel count.

channel count ということでチャンネルの数が違いますとのこと
音声ファイルがステレオでとられていたのでモノラルに変更しました。

さぁ今度こそ!

Waiting for operation to complete...
:~$ 

・・・何もおこらないぞ?
もう一回だ!

Waiting for operation to complete...
:~$ 

(※注 shell未経験者)

何も起こらない・・・でもほかの人は直下にデータが出ているといっている。
shellにファイル一覧するコマンドがあったようなと探してみる。

現在のディレクトリの一覧はls ということなので
打ってみると、あった!ありました!output.txtが!

次は表示です!どうやるんだ!ローカルに保存はどうするんだ! 調べてみると・・・
dl 【ファイル名.txt】
でダウンロードできました!

変換されてる!やったね!

さてここまででサンプルのFLACは読み込めたぞ!

実際は自分が使いたかったのはwavファイルなので修正します。

pythonファイルの
encoding=enums.RecognitionConfig.AudioEncoding.FLAC,

encoding=enums.RecognitionConfig.AudioEncoding.LINEAR16,
に変更

さて8分で20MBのwavファイルを使用して、実行する。

無事ファイル生成完了です。

感想

参考記事を書いてくださった皆様、助かりました。ありがとうございます。
音声認識も期待通りの精度でしたので、うれしいですね。
久々にやり切った感がありました。

aiukao
初めましてー。
http://blog.aiukao.net/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした