reazonspeech.nemo.asr

このリファレンスでは、NeMoモデルで音声認識するためのインターフェイスを解説します。

関数

load_model(device=None)

ReazonSpeechのNeMoモデルをロードする。

パラメータ:

str (device) -- cuda または cpu ( None 指定で自動選択)

戻り値の型:

nemo.collections.asr.models.EncDecRNNTBPEModel

transcribe(model, audio, config=None)

ReazonSpeechモデルで音声を認識し、結果を返却する。

サンプルコード

from reazonspeech.nemo.asr import audio_from_path, load_model, transcribe

audio = audio_from_path("test.wav")
model = load_model()
ret = transcribe(model, audio)

print('TEXT:')
print('  -', ret.text)

print('SEGMENTS:')
for segment in ret.segments:
    print('  -', segment)

print('SUBWORDS:')
for subword in ret.subwords[:9]:
    print('  -', subword)

実行結果

TEXT:
  - ヤンバルクイナとの出会いは18歳の時だった。
SEGMENTS:
  - Segment(start_seconds=0.6, end_seconds=2.44, text='ヤンバルクイナとの出会いは')
  - Segment(start_seconds=3.08, end_seconds=4.44, text='18歳の時だった。')
SUBWORDS:
  - Subword(seconds=0.60, token_id=2, token='')
  - Subword(seconds=0.84, token_id=653, token='ヤ')
  - Subword(seconds=1.0, token_id=25, token='ン')
  - Subword(seconds=1.08, token_id=140, token='バ')
  - Subword(seconds=1.24, token_id=44, token='ル')
  - Subword(seconds=1.4, token_id=66, token='ク')
  - Subword(seconds=1.56, token_id=69, token='イ')
  - Subword(seconds=1.64, token_id=148, token='ナ')
パラメータ:
戻り値の型:

reazonspeech.nemo.asr.TranscribeResult

ヒント

transcribe関数のプログレスバーを無効化するサンプルコードを以下に示します。

import os
os.environ['TQDM_DISABLE'] = '1'
from reazonspeech.nemo.asr import load_model, transcribe, audio_from_path, TranscribeConfig

# Prepare model and configuration
model = load_model()
audio = audio_from_path("demo.mp3")
config = TranscribeConfig(verbose=False)

# Process audio
ret = transcribe(model, audio, config)

補助関数

audio_from_path(path)

音声ファイルを読み込み、音声データを返却する。

パラメータ:

path (str) -- 音声ファイルのパス

戻り値の型:

AudioData

audio_from_numpy(array, samplerate)

Numpyの配列を受け取り、音声データを返却する。

パラメータ:
  • numpy.ndarray (array) -- 音声データ

  • int (samplerate) -- サンプリングレート

戻り値の型:

AudioData

audio_from_tensor(tensor, samplerate)

PyTorchのテンソルを受け取り、音声データを返却する。

パラメータ:
  • torch.tensor (array) -- 音声データ

  • int (samplerate) -- サンプリングレート

戻り値の型:

AudioData

クラス

class TranscribeConfig

音声認識の処理を調整するための設定値クラス

verbose: bool = True

Falseがセットされた場合、プログレスバーを無効化する。

raw_hypothesis: bool = False

Trueがセットされた場合、Hypothesisオブジェクトを返却する。

class TranscribeResult

音声認識の結果を格納するためのデータクラス

text: str

音声認識結果の文字列

segments: List[Segment]

タイムスタンプ付きの認識結果

subwords: List[Subword]

サブワード単位のタイムスタンプ情報

hypothesis: nemo.collections.asr.parts.utils.rnnt_utils.Hypothesis

NeMoが返却する音声認識の詳細情報( TranscribeConfig.raw_hypothesis を参照)

class Segment

音声認識結果のセグメント

start_seconds: float

セグメントの開始時刻

end_seconds: float

セグメントの終了時刻

text: str

音声認識結果の文字列

class Subword

サブワード単位の認識結果

seconds: float

サブワードの出現時刻

token_id: int

トークンID

text: str

サブワード文字列

class AudioData

音声データを格納するためのコンテナ

waveform: numpy.array

音声データ

samplerate: int

サンプリングレート