🎤

機械学習のための音声データセット構築法

2023/08/04に公開

教師あり機械学習のモデルを訓練するためには訓練用のデータセットが必要です。機械学習の成否はデータセットの品質によって決まると言っても過言ではないでしょう。しかしながら、いざ自分でデータセットを用意しようと考えると、何をどのように構築するべきかのまとまった情報源があまり多くないことに気づきます。
そこでこの記事では、データセットの設計の際に考えなければいけないことについて述べます。機械学習のデータセット全般に通じる話を中心に紹介しますが、本稿では説明の都合上、音声のデータセット[1]のみを扱います。

0. はじめに決めておくこと

音声データセットの設計に入る前に、あなたが機械学習によってどのような課題を解決したいか(以下、「タスク」と呼びます)を決めておくことが重要です。すなわち、はじめに以下について検討してください:

  • どのようなタスクを解こうとしていますか?

    • モデルには何を入力しますか?
    • モデルからは何が出力されますか?
  • 誰が、いつ、どのような状況で、どんなデバイスを使って、そのタスクを実行する可能性がありますか?

    • あなたはどの利用シーンを想定していますか?
    • また、どのような利用シーンを想定していませんか?

以上をできるだけ明確にしておくことが重要です。事前に文献調査あるいは予備実験(プロトタイピング)を実施して、タスクについての見通しを深めておくことも有効でしょう[2]。これによって、限られたコストの中で何を重点的に収録し、何を行わないのかを論理的に決定することができます。

1. データセットの構成

機械学習モデルの訓練のための音声データセットは、通常以下のデータから構成されます:

  • データ本体

    • 機械学習モデルに入力するデータ系列
      • マイクによって収録された音声データ、ビデオカメラによって収集された動画データ
      • 公開されており利用可能な音声資源(国会録音、オーディオブックなど。研究用途では音声資源コンソーシアム[1]にリストがあります)から収集したデータ、インターネットから収集した動画データなど
  • ラベル

    • 機械学習モデルの教師情報となるラベルデータ
      • タスクによって異なる、モデルが何を出力するかに関する情報です。例えば音声認識であれば、音声データを文字起こししたテキストがラベルになります。
  • データ本体に関するメタデータ

    • 収録条件:音声データセットがどのような条件で収集されたのかに関するデータ
      • 収集日・話者の属性・センサーの種類・録音環境・サンプリング周波数など[3]
    • (すでにあるデータを集めたのであれば)データの出自に関する情報
      • データベース名、URLなど
    • 注釈データ(アノテーション)
      • 音声データセットを多目的に使いたい場合は、人手でまたは機械的にさまざまなアノテーションを付与する場合があります。これらはタスクによって教師情報として使われたり、メタデータとして使われたりします。
      • 例えば、イントネーションやアクセントのラベル、発話の開始・終了情報、笑い声や歌声のラベルなど(文献[2]が詳しいです)。

データ本体を得る方法は様々で、全てを新規に収録する、すでにあるデータを集めてくるなどがあります。例えば、機械学習などで大規模なデータセットを必要とする場合は、インターネットからデータを収集してきて、アルゴリズムによるデータの取捨選択を行うことがあります。

また、データ本体の集め方によってラベルを付与する方法が変わります。新規に収録するのであればラベルは収録時に指定することができます。いっぽう、すでにあるデータを集める場合、信頼性の高いラベルをどのように付与するかが重要になります。クラウドソーシングを活用したり、人手判定とアルゴリズムによる自動判定を組み合わせたり、といった手法が数多く提案されています(例えば[3][4])。

ラベル収録条件は、後述する音声データセットの代表性均衡性[5]を決定する重要な要素です。ラベルと収録条件の組み合わせによって収録のコストが変わるため、タスクにとって何が必要で何が必要でないか、特に慎重に検討してください。

2. データセットの設計

以下を考慮して音声データセットの設計を行います[5]:

  • 均衡性(バランス):何をどのくらいの割合で収集するのか

    • 例えば「笑い声の検出器」を作りたい場合は、「笑い声のデータ」と「それ以外の音声のデータ(どのようなタスクを想定するか・しないかによって定義は異なります)」を、それぞれ十分な割合で収集する必要があります。
  • 代表性:どのような母集団からどのような条件で収集するのか

    • 例えば「日本語を母語とする東京方言話者」の「対話音声」を収録する場合、これらが代表性に該当します。またこれは、代表性に該当しないデータ(外国語や関西方言の日本語、読み上げ音声など)を収録しないということを意味します。
  • データサイズ:どのくらいの量のデータを収集するのか

実際のタスクと著しく異なる条件で収集されたデータでは識別器の精度が劣化するいっぽうで、起こりうる条件を全て網羅するには膨大なコストが必要です。そのため、タスクに基づいて代表性・均衡性の取捨選択が重要になります。

以下、順番に見ていきます。

2.1. 均衡性

音声データセットの均衡性を詳しく検討する前に、まずはデータセットの基本デザインを決定します。これは2種類に大別されます:

A) 自然データセット:均衡を母集団の自然な分布のままに任せたデータセット

  • 大量のデータを集めれば自然と均衡性が担保されるようなタスクでは、自然データセットが適しています。

B) バランスデータセット:均衡を計画的に統制したデータセット

  • 稀にしか起こらないような現象を扱うようなタスクでは、バランスデータセットが適しています。

自然データセットとバランスデータセットのどちらが低コストかつ高精度のモデルが期待できるかは、タスクの種類ととりうる手段によってケースバイケースです。

  • 例えば、極めて稀なイベント(叫び声など)の検出器を作りたいとします。おそらく、日常会話の自然データセットを収録するよりも、叫び声が多く出現するように統制したバランスデータセットのほうが効率よく収録ができるでしょう。
  • もしくは、インターネットから超大規模の音声データを収集して、叫び声らしい音声の候補をアルゴリズム(あるいは人手)を使って抽出する、というアプローチも可能かもしれません。

「A) 自然データセット」を選んだ場合は、均衡性の検討は以上で終わりです。

「B) バランスデータセット」を選んだ場合は、何の均衡を取るのか、何の均衡を取らないのか(自然な分布に任せるか)を決めていきます。以下は、音声の収録で検討する均衡の例です:

  • どのような種類のデバイスが使われるか。マイクのタイプ(シングル/マルチマイク、近接/遠隔マイク、固定式/移動式マイク、等)、スマートフォンかPCか、など(文献[6]が詳しいです)。
  • どのような環境でデータが入力されるか。室内か屋外か。室内であればどのような残響環境か。雑音の有無。どのような種類の雑音があるか、など。
  • 誰がどのような状況でデータを入力するか。誰がどこから話しかけるか。話者が途中で増えたり減ったりするのか。単独の入力を想定して良いか、同時入力がありうるか、など。
  • どのような音声が話されるか。自由に話すのか、ある程度文や単語が予測できるのか。笑い声・相槌・フィラーなどは入る可能性があるか、など。音声学の実験や古典的な音声認識のモデルでは、特定の音素が特定の頻度で出現するように厳密に調整された「音素バランス文」を作り、その通りに読み上げてもらった「音素バランス文読み上げ音声データセット」を使うこともあります。

均衡の種類によっては、あとから機械的に水増しできる種類のものもあります。例えば、音声をクリアな音響環境で録音しておいて、後から雑音・残響を追加してデータを合成することができます。水増しによってデータの性質が変わったり品質が劣化したりする場合もあるため、タスクに応じてデータの何を重視するか(品質を重視するのか、規模を重視するのか)を検討してください。

2.2. 代表性

音声データセットの代表性が実際の利用シーンと異なっていると、訓練と本番で入力データのミスマッチが起こり、識別器の精度が低下するリスクが大きくなります。そのため、どの母集団に対してデータを集めるか(どの母集団のデータを集めないか)は慎重に決めてください。以下は一例です:

  • 幅広い年齢層のユーザーが想定されるタスクなら、データ提供者の年齢を層化して均等に収集する
  • カジュアルな現場での利用が想定されるタスクなら、データ提供者ができるだけリラックスできるような収録環境を用意する
  • 入力データがコーデックやハードウェアに由来する歪み・圧縮を受けるタスクであれば、それを再現可能なデータを収集する

さらに音声収録のタスクでは、例えば以下のような項目を検討してデータセットの代表性を決めていきます:

  • フォーマル性:業務での使用か、家庭内での使用か。衆人環境での使用か個室での使用か
  • 自発性:ユーザーは自分から話しかけるのか、促されて話すのか。定型文を喋るのか、自由に喋るのか。特に感情音声では自発性によって得られる音声の性質が異なる[7]ため、慎重な検討が必要です。
  • 直接性:一対一でシステムに話しかけるのか、一対多の状況にシステムが置かれているのか[4]
  • 特殊性:日常生活において自然には発話しない音声を扱うのか(強い感情音声や泣き声など)、頻繁に発話される音声を扱うのか

2.3. データサイズ

データサイズは大規模であるほど機械学習モデルの性能が向上することが期待できますが、適切な代表性・均衡性を考慮していない場合は、単にデータサイズを増やしても非効率あるいは無意味な場合もあります。そのため、事前にタスクを定義し、均衡性・代表性の設計を十分検討しておくことが重要です。

音声を新規に録音する場合、一人当たりの発話数と総発話数の構成を決める必要があります:

  • 話者の人数:全部で何人の話者の音声を収録するか。一人の話者が全ての均衡を網羅するのか、複数人の話者に分散させるのかも考える必要があります。
  • 話者一人当たりの発話時間:各話者が発話する音声の発話数。
  • 発話総数(総発話時間):音声データセットに収録された全音声の発話数(発話時間)。

新規に録音する場合でも、すでにあるデータを集める場合でも、データセットの品質とデータサイズはトレードオフの関係にあるため、解くべきタスクによっていくつかの方針を立てることができます。例えば:

A) 品質を重視した比較的小規模なデータセット

  • ラベルの正確性・データの品質(音質や録音機器の性能など)を高めたデータセット。バリエーションを重視し、できるだけ多くの均衡を含める場合もあります。

B) データサイズを重視した比較的大規模なデータセット

  • データサイズを大きくすることを重視したデータセット。データの品質評価は、アルゴリズムによる自動判定やクラウドソーシングなどの、比較的コストのかからない手法を使います。

3. データ整備

音声データセット設計およびデータ収集が終わった後で行う作業について簡単にまとめておきます:

  • アノテーション

    • 収録した音声データセットが自発音声の場合は、第三者(クラウドソーシング等)による聞き取りと書き起こしを行い、発話内容をテキスト化します。
    • 音声データセットの規模をさらに増やしたい場合、例えばこの発話内容のテキストを台本として使用して、読み上げ音声の追加収録を行う場合もあります。
  • フィルタリングとスコアリング

    • データ本体の品質を評価し、低品質のデータを除外します。
    • 第三者による聞き取りと評定を行い、想定外の(設計にない)ノイズの混入や、録音の失敗、指示書通りに話せていない、などのデータにNGの判定をつけます。

4. まとめ

実用的で高性能な機械学習モデルを開発するためには、音声データセットの設計時に以下を検討する必要があります:

  • タスクの利用者・利用シーンを正しく反映できていますか?(代表性)
  • 識別対象のラベルや起こりうる状況を網羅できていますか?(均衡性)

これらを考慮した上で、さらに機械学習モデルの訓練に必要十分な量のデータが必要になります。識別器が実際に使用される状況を十分検討し、タスクを明確に定め、性能に関わる要因を積極的にコントロールする(性能に関わらない要因を捨てる) ことで、性能・コストのバランスの良い音声データセットを設計することができます。

関連トピック

なお、本稿では以下のトピックは扱いませんでした:

  • データの収集・構築・利用時における倫理的配慮・ならびに法的な取り扱い
    • 既存のデータを収集する場合、ライセンスや著作権の扱い
    • 新規にデータを収録する場合、データの作成者・提供者との合意形成の方法
  • データの具体的な収集方法(録音方法など)

これらも音声データセットの収集前に、十分検討しておく必要があります。

参考文献

[1] https://research.nii.ac.jp/src/list.html (最終アクセス:2023年7月14日)
[2] 前川喜久雄(監修), 小磯花絵(編), "講座日本語コーパス 話し言葉コーパス 設計と構築," 朝倉書店, (2015).
[3] Y. Baba and H. Kashima, "Statistical quality estimation for general crowdsourcing tasks," Proceedings of the 19th ACM SIGKDD international conference on Knowledge discovery and data mining, pp.554–562, (2013).
[4] Y. Sato and K. Miyazawa, "Statistical quality estimation for partially subjective classification tasks through crowdsourcing," Language Resources and Evaluation, Vol.57, pp.31-56, (2022).
[5] 前川喜久雄, "コーパスの存在意義", 前川喜久雄(監修/編), "講座日本語コーパス コーパス入門," 朝倉書店, pp.1-31, (2015).
[6] 榊原健一, 河原英紀, 水町光徳, "利用価値の高い音声データの録音手順," 日本音響学会誌, Vol.76, pp.343–350, (2020).
[7] 森大毅, "感情音声の研究を始める人のための音声コーパス入門," 日本音響学会2019年春季研究発表会, pp.1-9-9, (2019).

脚注
  1. 構造化されて注釈がつけられた音声データセットのことを「音声コーパス」と呼ぶこともあります。 ↩︎

  2. 解きたいと考えているタスクについて幅広く知見を集めることをおすすめします。例えば音声の機械学習タスクは、国内外の音声信号処理・音楽情報処理・コーパス言語学・音声学・認知科学・コミュニケーション科学・ヒューマンインタフェースなど、多種多様な分野で研究が行われています。 ↩︎

  3. データの収録条件は、データセットの構築において重要なだけでなく、データセットの名刺代わりとなる情報でもあります。仮にデータセットを販売したり公開したりする場合は、収録条件がリスト化されていることで、幅広い利活用が促進されます。 ↩︎

  4. さらに、話者同士の関係性や、オンライン/対面など、さまざまな条件によって話し方が変わることがわかっています。これらはスピーチレジスタ(または使用域、位相)研究として、盛んに研究が行われている分野です。 ↩︎

フェアリーデバイセズ公式

Discussion