アノテーションフォーマットTextGrid形式Praatを使って音声データに対してアノテーションした情報は、TextGrid形式でファイルに保存したり読み込めます。TextGrid形式で保存できる情報は、次の2種類を押さえておけば大丈夫です。区間に対するアノテーション。単語、読み、音素など)を付与する。区間はオーバーラップしない。点に対するアノテーション。特定の時刻(点)に対して文字列を付与する。teirといった層の種類を決めて情報を付与することができます。1つの層は複数の情報(intervalやpoint)を含んでおり、時刻の昇順に並んでいます。実際に先ほどの例の音声データにアノテーションを付けると、次のようになります。音声データとアノテーション情報を表示したPraatの画面TextGrid形式の実際のデータを見てみましょう。""最初にヘッダ情報(ファイル形式や層の数など)があり、そのあとに層ごとのアノテーションの情報が続く構造になっています。理研母子会話コーパス(R-JMICC)のコーパスの構築に実際に使われているそうです。説明されているように、日本語話し言葉コーパスは複数の形式でアノテーション情報を提供しており、その中にTextGrid形式もあります。TextGrid形式の他の活用方法としては、音声認識や発話区間検出の結果をTextGrid形式で出力して評価に利用することも考えられます。TextGrid形式を読み書きするライブラリTextGrid形式をPraat以外のプログラムでも扱えると音声コーパスの活用や音声認識システムの評価に利用できるので、とても便利です。いうライブラリを自分で簡単に実装してみました。依存ライブラリなし(標準ライブラリのみ利用)文字コードはUTF-8のみサポート実装した機能の通りです。データを保持するためのクラス(構造体)TextGrid、Tier、IntervalTier、PointTier、Interval、Pointなど入力ストリームからTextGrid形式のデータを読み込む機能TextGrid形式のParser(+Lexer)出力ストリームへTextGrid形式でデータを書き出す機能TextGridオブジェクトのデータにアクセスするためのTextGridVisitor一番面倒だったのはTextGrid形式の解析を行うParserでした。ドキュメントに詳細なファイル形式の説明がありますが、人間が読みやすいゆるい形式と機械可読な短い形式があります。最終的には両方読み込めるようにしたのですが、実装している最中は、ファイルフォーマットの仕様がもっと簡素だったら構文の定義と構文解析の実装がもっと楽だったよね、という気持ちと、たまには構文解析を手書きで実装するのも楽しいよね、という気持ちがせめぎ合いました。標準入力からTextGrid形式のデータを読み込んで、そのまま標準出力に出力する簡単なサンプルプログラムは次のように簡単に書くことができます。ReadAndWrite();}1000行に満たないライブラリですが、発話区間検出のアルゴリズムの評価を行うコマンドを実装するのに使っていて、いまのところうまく動いています。足りない機能は色々ありますが、次の機能は近々必要になるかもしれないと考えています。Tierのサポートまとめ音声分析ソフトウェアのPraatと、アノテーションフォーマットTextGrid形式について紹介しました。音声データを扱って何かするときに役に立つ...かもしれません。記事をおすすめしておきます。»ABOUT株式会社レトリバの技術ブログです。レトリバのリサーチャー及びエンジニアが分担して技術的な記事を載せていこうと思います。Inc.スターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。