スマホで録った音源からテキスト化に挑戦
結果を先にいうと、求める精度ではなかったのだけど
もったいないので試した経緯だけ残しておきます。
音声ファイルを用意する
afconvert -f WAVE -d LEI16 -c 1 XXXXX.m4a XXXXX.wav
- 実際の音声のはじめ部分
A: よろしくおねがいします B: よろしくおねがいします A: といってもどうやりましょうね
Google Speech-to-Text を試す
$export GOOGLE_APPLICATION_CREDENTIALS = XXXXX.json
- 音声ファイルをGCSにあげておく
$ gsutil cp XXXXX.wav gs://bucketsXXX/XXXXX.wav
- サンプルコードを手元に落とす
$ git clone https://github.com/googleapis/python-speech.git
- 仮想環境作成し必要なモジュール入れる
$ virtualenv env $ source env/bin/activate $ pip install -r requirements.txt
- サンプルコードに手を加え
- sample_rate_hertz=16000, - language_code="en-US", - model=model, + sample_rate_hertz=48000, + language_code="ja-JP", + #model=model,
- GCS上の音声ファイルをテキスト化してみる
$ python transcribe_model_selection.py gs://bucketsXXX/XXXXX.wav > interview.txt
- 結果
Waiting for operation to complete... -------------------- First alternative of result 0 Transcript: お願いします -------------------- First alternative of result 1 Transcript: 言ってももうやりましょうね -------------------- ・・・・・
Google Speech API を試す
- 非同期で処理
$ gcloud ml speech recognize-long-running 'gs://bucketsXXX/XXXXX.wav' --language-code='ja-JP' --sample-rate=48000 --async
Check operation [operations/XXXXXXXXXXXXX] for status.
{
"name": "XXXXXXXXXXXXX"
}
- 下記コマンドで処理状況を確認。
終わっていれば progressPercent が100になりresponseにテキストが返る
$ gcloud ml speech operations describe XXXXXXXXXXXXX
{
"done": true,
"metadata": {
"@type": "type.googleapis.com/google.cloud.speech.v1.LongRunningRecognizeMetadata",
"lastUpdateTime": "2021-09-XXT09:15:37.404790Z",
"progressPercent": 100,
"startTime": "2021-09-XXT08:59:39.288851Z",
"uri": "gs://bucketsXXX/XXXXX.wav"
},
"name": "XXXXXXXXXXXXX",
"response": {
"@type": "type.googleapis.com/google.cloud.speech.v1.LongRunningRecognizeResponse",
"results": [
{
"alternatives": [
{
"confidence": 0.8462801,
"transcript": "お願いします"
}
]
},
{
"alternatives": [
{
"confidence": 0.9102794,
"transcript": "言ってももうやりましょうね"
}
]
},
・・・・・
}
- 結果は同じである
Amazon Transcribeを試す

- 結果
{"jobName":"sample-transcription-job","accountId":"XXXXXXXXXX","results":{"transcripts":[{"transcript":"よろしくお願いしますふーんって・・・・・}
Googleドキュメントの音声入力を試す
- ググるとよく出てきた方法
Virtual Audio Cableなど仮想オーディオで入力を出力に回して、音声ファイルを再生しながら音声入力する方法 - 結果
言ってももうやりましょうね こっちこそ・・・・・
- 途中で止まるので無理だった
結果
テキスト化したものは精度的に使えず、手打ちしたのであった‥
精度原因を探る
- インタビュー形式の2名の音声だったのだが、1名の音声のほうが大きく入っており、そちらばかりテキスト化されていた
- 一人だけの音声なら、もっと精度が良かったのでは
- ずっと話し続けていて区切りのない音声だった
- 区切りが明確な発表形式だったら精度が違ったかもしれない