音メディア処理研究室

 
ブログ

音声認識とフェイストラッキングを用いたアニメキャラクタへの変身

2016年7月28日に開催されたデモ大会の発表内容です

 

機能

kinectの音声認識と骨格認識を利用し、

プレイヤーの声を認識、その言葉に対応したキャラクターの顔を

画面上でプレイヤーの頭部分に貼り付けプレイヤーの動きに追従させる

詳しくは以下の動画をご覧ください

 

https://youtu.be/uqV6Yf9cPbk

 

開発ツール

・kinect

 

 

デジタル絵本用読み聞かせ音声

2016年7月28日に行われたデモ大会での発表内容です。


背景・目的

  • 小学校入学前の子どもと楽しむために絵本読み聞かせアプリケーションが複数存在する
    →ただし、ほとんどがすでに録音された音声を物語と共に再生するものである
    また、それ以外は自分の声を録音して再生するものである
  • 人工音声(または、感情音声)に関しての技術はロボットの音声、ガイド分の読み上げ等で主に使われている
  • 絵本読み聞かせに特化した音声合成ソフトは見かけない

人工音声で絵本読み聞かせのできるコンテンツを実現し、
読み聞かせの幅を広げたい

デモ内容

  • 規則音声合成ライブラリ「AquesTalk」を使用し、
    テキスト読み上げソフト「SofTalk」で録音した3種類の人工音声を比較する
    1.無修正人工音声
    2.修正人工音声①(速度:遅)
    3.修正人工音声②(速度:遅+間)
  • 文章:昔話「ももたろう」の始めの文より抜粋
    「むかしむかし、あるところにおじいさんとおばあさんがいました。
    おじいさんは山へ柴刈りに、おばあさんは川へ洗濯に行きました。」

%e7%84%a1%e4%bf%ae%e6%ad%a3%e4%ba%ba%e5%b7%a5%e9%9f%b3%e5%a3%b0

%e4%bf%ae%e6%ad%a3%e4%ba%ba%e5%b7%a5%e9%9f%b3%e5%a3%b0

%e4%bf%ae%e6%ad%a3%e4%ba%ba%e5%b7%a5%e9%9f%b3%e5%a3%b0%e2%91%a1

 

結果・考察

主観評価の結果、通常の速度より話速は遅く、句読点(、。)や文章の切れ目、「て・に・を・は」で間を入れると読み聞かせらしい音声に近づくことがわかった。

スマホを用いた仮想相対位置における音像定位システム

2016年7月28日に開催されたデモ大会の発表内容です

仮想的な音源と聴取者間の位置による音の変化を再現するシステムを作成しました。

システムの機能

  • システムを起動後 進みたい方向を向いてスマホを振るとその方向に進む
  • 画面上の音源(青色ブロック)と聴取者(赤色ブロック)の相対的な位置により音の聞こえる方向や音の大きさが変化

*画面上側を正面とします

システム構成図

fdsfasdd

デモ動画

動作は以下の動画をご覧ください。

また、3分10秒付近からは実際どのように音が変わるのかの動画を付け足していますので、

是非 ヘッドホンやイヤホンで聴いてみてください。

3分10秒以降の動画では 音源: 宝箱  キャラクター: 聴取者 となっています。

https://youtu.be/r1qwRMTBkHc

開発環境、ツールなど

 

  • Windows 7
  • Visual Stadio 2015
  • Android Studio  v 2.1.2
  • Java , C#
  • Unity v 5.3.5 (32-bit)
  • Android6.0

 

フルート演奏音の 音場シミュレーション

2016年7月28日に行われたデモ大会での発表内容です。

背景・目的
私は卒業研究でフルート音の分析・合成に取り組んでいます。
そこで、その技術の一つであるインパルス応答の畳み込みをすることで音場を再現することを目的としてデモを行いました。

デモ内容
無響室で録音したフルート音に大学構内の学生会館の部屋の特性を畳み込み、音場の再現をしました。
録音の際に、マイクの位置は息の音が入らないようにベルの前に来るように配置しました。
メーカーによる違いも調べるために2種類のフルートを用いました。

〈ヤマハYFL211S:洋銀〉
録音音源

合成後

 

〈ムラマツGXⅢ :管体銀製〉
録音音源

合成後

 

結果・考察
部屋の響き(インパルス応答)を演奏音に合成することで、その部屋で演奏したような音を再現できた。メーカーによる違いは聴くだけでは分かりにくい程度だったため、分析が必要だと感じた。

マイク間の相関を用いた音源方向の推定

2016年7月28日に行われたデモ大会の発表について紹介します。

目的・背景

マイクアレイによるフィルタ生成には音源方向が既知である必要があります。

目的音の方向を推定することが出来ればフィルタ生成における負担が減少すると考えたのでその技術について調べました。

今回は目的音方向を推定するプログラムを用いてデモを行いました。

デモ内容

マイクで集音した音から角度を推定して、スクリーンに映るトトロの顔がそちらを向くように動かすというデモになります。

システム説明

マイク二つを用いて集音し、マイク間の相関が最大となる遅延時間を求め角度を推定します。

音声データの相関の計算から角度推定までをMATLABで行い、算出した角度をテキストに保存します。

Processingでテキストを読み込み、角度に合わせて目を動かします。

集音は2秒間隔で10回繰り返した所で終了です。以下、発表の動画です。

https://www.youtube.com/watch?v=dV-wLEw0vn4

まとめ

今回は相関を用いて角度を推定するデモをおこないました。角度推定のプログラムは参考文献に記載されたものを用いています。このプログラムは単に音量で角度を推定しているので常に大きな音が集音されるとそちらの角度が出てしまいます。今後はそのような状況で推定が困難となる点を踏まえて改良したいです。

参考文献

遅延和アレーに基づく音源方向推定の研究

http://www.asp.c.dendai.ac.jp/thesis/H13_moriyama.pdf

雑音下におけるSS法を用いた音声認識ロボット

2016年7月28日に開催されたデモ大会におけるデモ内容は、以下の通りです。

・背景・目的

  • 近年では、様々な場面において音声認識技術は用いられているが、雑音環境下における音声認識に関しては研究途上の段階である。
  • 今回のデモ大会では雑音抑圧ではよく用いられているSS法を使って、雑音環境下においても音声が認識できるかどうかに関するデモを行う。

 

・デモ内容

  • まず、静かな環境でのロボットを用いた音声認識デモを行う。
  • 次に、雑音を発生させた状態にて音声認識ができるかどうかを実験する。

 

・システム構成

  • 今回のシステムでは、C#でプログラムの本体部分を作成し、雑音抑圧部分をMATLABにて関数として作成し、C#から呼び出して利用できるようにした。
  • また、音声認識に関してはJuliusを、音声合成に関してはOpenJTalkを用いた。

 

・今後の改善点

  • 他の雑音抑圧方法の機能の実装→SS法以外にも様々な方法があるので試してみたい。
  • 計算時間の短縮→プログラムに冗長なスリープなどが入っているので、できるだけ減らす。

 

・動画

    • こちらの動画が、実際に行ったデモ内容である。

空間クロススペクトルを用いた拡散性雑音抑圧

2016年7月28日に行われたデモ大会の発表内容です。

「空間クロススペクトルを用いた拡散性雑音抑圧」という論文の追試を途中まで行いました。

システムの説明
拡散性雑音を抑圧するために、Wienerフィルタを設計します。
ここで、Wienerフィルタは 𝐻(𝜔) = (𝑃_(𝑠+𝑛)(𝜔)−𝑃_𝑛(𝜔)) / (𝑃_(𝑠+𝑛)(𝜔)) で計算されます。
𝑃_(𝑠+𝑛)(𝜔)  ,  𝑃_𝑛(𝜔) は以下にある計算式で推定されます。
hp%e7%94%a81

hp%e7%94%a82

 

 

 

 

 

 

 

 

ここで Y_DS(𝜃,𝜔) は正面を0°としたときの右20°,40°,60°,80°方向と左20°,40°,60°,80°方向にビームを向けた遅延和フィルタによって強調された信号です。

遅延和フィルタとは、複数のマイクで収音する時に、各方向から到来する音の時間遅れを、その遅れ分だけフィルタで進めて、相殺させることによって特定の方向の音を強調させるものです。

そして、それぞれの方向の Y_DS(𝜃,𝜔) を計算した後、先のWienerフィルタを計算します。

計算したWiernerフィルタを、収音した信号に掛け合わせることで、拡散性雑音を抑圧することができます。

 

実験結果は以下にあります。
hp%e7%94%a83

 

今後の課題
実験結果を見てもらうと分かるのですが、効果があまりでていません。
原因は雑音の推定ができていないことによるものだと考えられます。
その理由は実験で使用したものはただの雑音で、拡散性の雑音ではなかったからだと思います。

参考文献
空間クロススペクトルを用いた拡散性雑音抑圧

NMFの多チャンネル拡張を用いた音源分離

研究背景・目的

私たちが生活する環境の中には、様々な音(人の声、音楽、騒音、残響など)が存在しています。このような音が存在する時、目的音源の抽出、認識性能は低下するといった問題があります。そこで音源分離を行うことで、背景音が含まれる中で目的とする音源の抽出、認識性能を向上させることが出来ます。音源分離には、いくつかの手法がありますが、その中でも新しい手法であるNMFを多チャネル拡張したマルチチャネルNMFに着目します。

マルチチャネルNMFおよびシングルチャネルNMFの概要は吉山さん、三浦さんの記事を参考にして下さい。

https://www-ai1.csis.oita-u.ac.jp/?page_id=538

https://www-ai1.csis.oita-u.ac.jp/?page=1946

デモ内容

以下のチャネル数で観測した音を分離しました。ここでは、ランダムな初期値パターンを作成し、初期値に与えています。

2チャネルで観測:
人の声(男女)、楽器(ギター、ドラム、シンセサイザー)

3,4,5,6チャネルで観測
楽器(ギター、ドラム、シンセサイザー)

まとめ

NMFの多チャネル拡張を用いた音源分離を行いました。
まだ、試行回数が少ないので回数を重ねてこれからの研究に結びつけていければいいなと思います。

詳細は以下の動画をご覧下さい。

音による神経衰弱アプリ

2015年12月17日に行われたデモ大会の発表内容です。

通常の同じ絵を見つけていく神経衰弱ではなく、タッチしたときに流れる音を聞き同じ音を探していくゲームです。

音源はフリー素材を使用しています。

ゲーム内容

・タッチし、同じ音を探す

・残り枚数が4枚になると通常の音に加えて鳥の音が同時に流れ、

難易度が上がる

詳細は以下の動画をご覧ください

https://youtu.be/uaYi7wy7S1E

 

 

 

開発環境:eclipse

使用デバイス:Android

参考文献:「10日でおぼえる Androidアプリ開発入門教室 第2版」

 

 

マルチチャネルNMFを用いた音源分離における 初期値依存性の挙動解析の研究

研究背景・目的

下の左図のように複数話者が存在する場合、目的話者の声を聞き取るのは困難です。そこで音源分離という技術で各話者ごとの声に分離することで、下の右図のように目的話者の声を抽出することが可能となります。

miura1

音源分離には独立成分分析や特異値分解などいくつか手法がありますが、その中でも比較的新しい手法であるマルチチャネルNMFに着目します。この手法は、空間情報を使うことで高精度に音源分離をすることが出来ます。しかし、従来のマルチチャネルNMFは自由度の高いモデルであるので、後述する初期値によって分離性能のばらつきが大きな問題となっています。

本研究では、通常ランダムに設定される初期値に対して、どの情報の初期値が分離性能を左右するのか解析を行います。マルチチャネルNMFおよびシングルチャネルNMFの概要は吉山さんの記事を参考にして下さい。

https://www-ai1.csis.oita-u.ac.jp/?page_id=538

初期値依存性の挙動解析

マルチチャネルNMFで観測信号を音源分離することで、観測信号を示す行列Xを「どのような音が含まれるか」を示す行列T、「その音がいつ鳴っているか」を示す行列V、「その音がどの音源から鳴っているか」を示す行列Z、「どの方向に音源が存在するか」を示す行列Hに分解することが出来ます。今回は推定が比較的容易であると考えられる行列Tと行列Hに着目します。下図はマルチチャネルNMFの動作の流れを表します。

miura1この図のように、ランダムに設定された各行列の合成値と入力信号を比較して、各行列の値が入力信号に近づくように更新式を繰り返し適用します。この時、初期値がランダムに与えられるため、同じデータを分離する時でも分離性能に違いに出てしまうのが問題となっています。そこで、どの情報の初期値が分離性能を左右するのか解析を行います。

ここでは、ランダムな初期値パターンを10 個作成し、各パターンで分離を行います。分離結果が良かったパターンの更新後の各行列は、正しく音源分離が出来ている理想的な値であると仮定し、各パターンの他の初期値は変えずに、更新後の最良の行列を初期値として設定することで実験を行います。分離する観測信号は、楽器および音声の3つから構成された音楽データで、4曲分用意しました。以下は分離結果となっています。

miura3横軸は音楽データの種類を、縦軸はSDRと呼ばれる分離性能を表します。SDRの数値が高いほど、分離性能が良いことを表します。また、エラーバーはデータのばらつきである標準偏差を表します。”random”は初期値がランダム、”best_T”は最良の行列Tを使用、”best_H”は最良の行列Hを使用、”bestT&H”は最良の行列Tおよび最良の行列Hを使用したことを示します。

この表から、最良の行列を初期値とすることで分離性能が向上していることが見られます。また、行列Tと行列Hの両方を最良の値にすることで、分離性能のばらつきが大幅に減少しています。このことから、「どのような音が含まれるか」と「どの方向に音源が存在するか」という情報が分離性能を左右するということが考えられます。

まとめ

今回の研究で「どのような音が含まれるか」と「どの方向に音源が存在するか」という情報の初期値に分離性能が左右されるということが分かりました。さて、実際にこれらの情報をどのように取得すれば良いのかということですが、この記事では省略させて頂きます。この研究は2015年春に開催される音響学会に提出予定なので、気になった方は是非調べてみてください。簡単な説明でしたが、ここまで読んで下さりありがとうございました。音源分離に興味を持たれたなら幸いです。