reazonspeech.espnet.oneseg

このリファレンスでは、ワンセグ放送データを解析するためのインターフェイスを解説します。

関数

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.asrUtterance.cerNone になります。

パラメータ:
  • path (str) -- MPEG2-TSファイルのパス

  • ctc_segmentation (CTCSegmentation) -- ESPnet2のCTCSegmentationインスタンス

  • speech2text (Speech2Text) -- ESPnet2のSpeech2Textインスタンス(省略可)

  • strategy (str) -- optim または lax (既定値は optim

戻り値の型:

List

戻り値:

Utterance のリスト

補助関数

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時に離陸しました。')
パラメータ:

captions (str) -- Caption のリスト

戻り値の型:

List

戻り値:

Caption のリスト

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)