ReazonSpeech APIリファレンス¶
このリファレンスマニュアルでは ReazonSpeech ライブラリについて解説します。
MPEG2-TS形式のデータを情報解析する各種のPythonインターフェイスを提供します。
関数¶
- get_captions(path)¶
MPEG2-TSファイルから字幕テキストを読み取ります。
- パラメータ:
path (str) -- MPEG2-TSファイルのパス
- 戻り値の型:
List
- 戻り値:
Caption
のリスト
- get_utterances(path, ctc_segmentation, speech2text=None, strategy='optim')¶
MPEG2-TSファイルから音声コーパスを抽出します。
音声ファイルの切り出しについて、2つのモードをサポートしています。
optim は音声認識モデルをもとに最適なポイントで音声を切り出します。 余計なノイズの少ないクリーンなコーパスを作成する場合に適しています。
lax は前後の文脈を含めて余分に切り出します。 ロバストな音声認識に適したコーパスが得られます。
また、speech2text を呼び出し時に渡すことで、追加の精度指標(文字誤り率)を計算できます。 省略した場合
Utterance.asr
とUtterance.cer
はNone
になります。- パラメータ:
path (str) -- MPEG2-TSファイルのパス
ctc_segmentation (CTCSegmentation) -- ESPnet2のCTCSegmentationインスタンス
speech2text (Speech2Text) -- ESPnet2のSpeech2Textインスタンス(省略可)
strategy (str) -- optim または lax (既定値は optim )
- 戻り値の型:
List
- 戻り値:
Utterance
のリスト
- transcribe(audio, speech2text=None, config=None)¶
音声ファイルを解析し、文字起こしの結果を返却します。
任意の長さの音声データに対応しており、自動的に音声を区切ってストリーム処理する機能を備えています。 具体的な使い方を以下に示します。
import reazonspeech as rs for caption in rs.transcribe("test.wav"): print(caption)
音声認識の結果は次のように
Caption
として返却されます。Caption(start_seconds=1.53, end_seconds=3.26, text="むかしむかし") Caption(start_seconds=3.26, end_seconds=7.48, text="丹後国水の江の浦に浦島太郎という漁師がありました") Caption(start_seconds=8.68, end_seconds=12.71, text="浦島太郎は毎日釣りざおを担いでは海へ出かけて")
バージョン 1.1.0 で追加.
- パラメータ:
audio (str, np.array) -- 音声ファイルのパス(または音声データ)
speech2text (Speech2Text) -- ESPnet2のSpeech2Textインスタンス(省略可)
config (TranscriberConfig) -- 音声認識のオプション(省略可)
- 戻り値の型:
Iterator[
Caption
]
補助関数¶
- build_sentences(captions)¶
字幕テキストをセンテンス単位に再構成します。
次のように文の途中で字幕が分割されているケースを想定した関数です:
Caption(start_seconds=10, end_seconds=12, text='輸送機は午前10時に') Caption(start_seconds=12, end_seconds=15, text='離陸しました。')
この関数を適用すると、次のように文単位に字幕をマージできます:
Caption(start_seconds=10, end_seconds=15, text='輸送機は午前10時に離陸しました。')
- save_as_zip(utterances, path, format='flac')¶
日本語音声コーパスをZIP形式で保存します。
フォーマットは python-soundfile がサポートしている形式を指定できます(既定値は flac です)
- パラメータ:
Utterances (list) --
Utterances
のリストpath (str) -- 保存先のファイルパス
format (str) -- 発話を保存するファイル形式
- 戻り値の型:
None
クラス¶
- class Caption¶
MPEG2-TSファイルから抽出された字幕に対応するデータクラスです。
開始・終了時刻は、動画の先頭からの経過秒数を計算して格納しています。
- start_seconds: int¶
字幕の表示開始タイミング
- end_seconds: int¶
字幕の表示終了タイミング
- text: str¶
字幕テキスト
- class Utterance¶
MPEG2-TSファイルから抽出された発話に対応するデータクラスです。
- buffer: numpy.array¶
音声データを表すNumpyのArray
- samplerate: int¶
音声データのサンプルレート
- duration: float¶
音声データの再生秒数
- start_seconds: float¶
動画の先頭からの開始秒数
- end_seconds: float¶
動画の先頭からの終了秒数
- text: str¶
字幕テキスト
- ctc: float¶
CTC Segmentationの適合度スコア
- asr: str¶
Speech2Textが出力した認識結果 (speech2textを省略した場合はNone)
- cer: float¶
Speech2Textの認識結果の文字誤り率 (speech2textを省略した場合はNone)
- class TranscriberConfig¶
transcribe()
関数の処理を細かく調整するための設定値クラスバージョン 1.1.0 で追加.
- samplerate: int = 16000¶
音声認識モデルに渡す際のサンプリング周波数
利用する音声認識モデルが訓練されたサンプルレートに応じて変更してください。 既定値は 16000 (16khz) です。
- window: int = 320000¶
音声処理のウィンドウの長さ
長い音声については、このウィンドウ単位で分割して認識を行います。 既定値は 320000 (20秒) です。
- blank_threshold: float = 0.98¶
発話区間を推定する際の閾値
この設定値で、無発話区間とみなす閾値を変更することができます。 既定値は 0.98 (98%) です。
- padding: tuple = (16000, 8000)¶
入力音声に追加されるパディング
音声認識の際に、入力音声の前後に追加する余白を調整できます。 既定値は、前に1000ms、後に500msのパディングを補足して認識を行います。