プロが教えるわが家の防犯対策術!

◆ 概要
⇒ DPマッチングのアルゴリズムを利用し、小語彙の単語音声認識実験を行う ⇒ 音声入力~音響分析までの過程はすでに終了しているものとし、
予め用意されたテキストファイルのデータを利用する ⇒100単語のテンプレートに対して、 同じ発声内容の100単語(同一話者または別話者)を未知入力音声と 見立てて順に入力し、何単語が正しく認識できるか調べる
• データファイル
⇒ city_mcepdata.zip をダウンロード ⇒ 適当な場所に内容を展開 ⇒ city011, city012, city021, city022の4つのフォルダ ⇒各フォルダにそれぞれ100個のテキストファイル
• データの内容
⇒100地名単語データベース ⇒話者2名がそれぞれ2回ずつ発声(計4データセット、400単語分) ⇒100単語の発声内容がすべて同じ順序で格納 ⇒ ex. 先頭の単語(単語番号001)はAZABU(あざぶ)
> ファイル名
⇒ ex. city011_001.txt ⇒ city011 は話者01の1回目発声(city022なら話者O2の2回目発声) ⇒ _001 は単語番号 (100単語なので001から100まで)

ファイル構造 ⇒テキスト形式; Windowsのメモ帳やUNIXのcatコマンドで見える ⇒先頭に3行のヘッダ情報
1行目: ファイル名から拡張子 .txt を除いたテキスト (ex.city011_001) • 2行目: 発声内容(音素の略式表示)
→ 3行目: フレーム数 ⇒4行目から後がデータ(音響特徴量ベクトル)
1行が1フレームに対応 → 15次のメルケプストラム特徴量(空白で区切られた15個の浮動小数点数) ⇒ ex. フレーム数が61の場合、ファイルの行数は61 + 3(ヘッダ部) = 64行 ⇒単語によりフレーム数(発声時間長に対応)が異なるので行数も異なる
• 実験方法
⇒4データセットのうち2つを利用 ⇒ テンプレート(正解)1つ、未知入力(認識対象)1つの組み合わせ ⇒同一話者(2通り) =特定話者
→ ex. テンプレートが話者01の1回目、未知入力が話者01の2回目 ⇒別話者(4通り)
⇒不特定話者 + ex. テンプレートが話者01の1回目、未知入力が話者O2の1回目
⇒それぞれの組み合わせについて100単語×100単語の総当たり認識 ⇒ 発声内容はすべて同じ;未知入力のN番目の単語をテンプレートの 100単語とマッチングさせた結果、N番目の単語に対して最小の 累積距離が得られれば正解 ⇒ 正解数(最小の累積距離を与えた単語が入力単語と一致した数) = 単語認識率 [%]

データの読み込み
⇒1単語のデータ構造は double data[frame] [dimension] (2次元) ⇒この実験では dimension = 15で固定; frame は単語により異なる ⇒テンプレートと未知入力それぞれ100単語を予めすべて読み込んでおく
局所距離の計算(パズルにおける○内の数字に相当) ⇒ テンプレートA(フレーム数 I )と未知入力B(フレーム数 J)のマッチング ⇒Aのフレームiのデータを aik、Bのフレームのデータを bjk (k は次元) ⇒ aik と bjk の間の局所距離:
d(i, j) = √(ai,1 - bj,1)2 + (ai,2 - bj,2)2 + … + (ai,15 - bj,15)2→すべてのフレーム相互間について計算

用いる単語数
→テンプレート、未知入力ともに100単語
100×100=10000の組み合わせ
と内容はこんな感じなのですが、まずファイルを読み込むということがそもそもわかりません。C言語です。プログラミング初心者で何をやればいいのかわからず困っています。よろしくお願いいたします。

A 回答 (1件)

    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!