ReazonSpeech 日本語に適した音声認識モデル・自動書き起こしAIを試してみた

Whisperについて高速化したfast-whisperについては、過去に記事を書いてきました。

今回は、ReazonSpeech(約19,000時間の放送音声からなるラベル付き日本語音声コーパス)を用いて文字起こしをして行きたいと思います。

ちなみに、精度に関してはWhisper Large-v2よりも良いとのことです。しかも、軽いです。

ReazonSpeechを動かしてみる

Google Colaboratory上で実行してきます。ハードウェアアクセラレートを「GPU」に設定するのをお忘れなく。
早速、インストールしてみましょう。少し時間がかかりますが、待ちましょう。

!pip install git+https://github.com/reazon-research/reazonspeech

インポートの設定、モデルを読み込みをします。

import torch
from espnet2.bin.asr_inference import Speech2Text
import librosa
import reazonspeech as rs

device = "cuda" if torch.cuda.is_available() else "cpu"

speech2text = Speech2Text.from_pretrained(
  "reazon-research/reazonspeech-espnet-next",
  beam_size=5,
  batch_size=0,
  device=device
)

文字コード環境がUTF-8でないためにエラーが起きることがあります。以下のコードを実行しましょう。

import locale
def getpreferredencoding(do_setlocale = True):
    return "UTF-8"
locale.getpreferredencoding = getpreferredencoding

以前の動画の半自動作成の記事で作成したYoutube動画を音声形式にしてダウンロードします。

!pip install yt-dlp
!rm input.mp3 
!yt-dlp -x --audio-format mp3 https://youtu.be/1XQVbMz4j-0 -o "input.mp3"

自動書き起こしを実行します。

file_name="input.mp3"

SAMPLE_RATE = 16000
speech, sample_rate = librosa.load(file_name, sr=SAMPLE_RATE)

for cap in rs.transcribe(speech, speech2text):
    start_time = cap.start_seconds
    end_time = cap.end_seconds
    text = cap.text
    print("[%.2fs -> %.2fs] %s" % (start_time, end_time, text))

一部書き起こしができていなかったり、文章の区切りがいまいちですが、ほぼ正確です。


非常に軽いので、ローカル環境でも容易に動かせるのは魅力です。
精度・文章の区切りの良さを考えると、Whisperの方が良いように感じます。

とりあえず、ここまで。

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

20 − 9 =