音メディア処理研究室

 
ブログ

方位で鳴らす音階アプリ

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

Android端末で振ってからボタンを押すことで

音階を鳴らして遊ぶことのできるアプリを作成しました。

アプリの簡単な機能は以下の通りです。

—————————————————————————————————————————-

[背景が黄緑色のモード]

  • 端末を振った後でボタンを押すと端末の方位・傾き・画面の裏表によって白鍵のc6ド,~,c7ド(8音)を鳴らす機能。
  • 今までに鳴らした音を履歴として再生できる機能。

[背景がオレンジ色のモード]

  • ボタンを押している間その時の端末の方位や傾き、画面の表裏によって白鍵のc5ド~c8ミ(24音)を定期的に鳴らし続ける機能
  • ランダムに選ばれる音を探しだして鳴らす音探しゲーム機能

—————————————————————————————————————————–

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

https://youtu.be/2S8hOoWIOxo
開発環境: Androidstdio 1.4.1

使用デバイス: Androidバージョン4.4.2

参考文献: 「作ればわかる!Androidプログラミング 第3版」

音声認識を用いたクイズゲーム

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

Googleの音声認識APIを用いてクイズゲームアプリを作成しました。

システムの説明


難易度を選ぶ。

ステージセレクト画面に遷移するので、そこでステージを選ぶとクイズ画面が出てくる。

クイズに答えて正解であれば、ステージセレクト画面に遷移し、次の問題が開放される。
(クイズに答えるときはボタンでも音声認識でも答えられるようにしました。)

まとめと今後の課題


  • 今のままでは音声認識した後にボタンを押さないと正解か不正解かを判断できないので、ボタンを押さずに正解か不正解かを判断する。
  • タイムアタックモードの実装。

 

また、問題がランダムに表示されるモードも作成しました。

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

また、このアプリの音源はフリー素材を使用させていただいています。

開発環境 : Android Studio

使用デバイス : Android 5.0.1

参考文献 : 「Android StudioではじめるAndroidアプリ開発の教科書 ~Android Studio 1.3対応~ (教科書シリーズ)」  松岡 謙治 (著)

サビの連続再生における楽曲印象を用いたプレイリストの自動生成の研究

研究背景・目的

近年、CDや音楽配信サービスなどが普及し、膨大な楽曲の中から聴けるようになりました。それに伴い、音楽を流し聴きするスタイルが増加し、複数の楽曲をメドレーのように楽しみたいという要望が増えています。

大量の音楽を聴取する方法としては、ランダム再生やプレイリストによるものがあります。
しかし、ランダム再生の場合は楽曲間で雰囲気が大きく変わると違和感を覚えたり、またプレイリストを作成するには大量の楽曲の中から選択しなければならないため、手間がかかってしまいます。

そこで、なるべく多くの楽曲を楽しめるようにサビのみを再生し、違和感のないメドレーを自動で生成することを目的としています。

システム構成

違和感のないメドレーを生成するために、楽曲印象を用いて再生順を決定することで違和感を抑えることができると考えています。

例えば、所持している楽曲すべてを「明るい曲」から「暗い曲」へだんだんと移り変わっていくように順番に並べます。
ランダム再生であると前後の楽曲の雰囲気が大きく変化するところで違和感を覚えることがありますが、印象の近い順番で並べると前後の楽曲の雰囲気が似ているため違和感を感じにくくなります。

system

楽曲間の処理については、クロスフェード処理を行っています。

従来研究

楽曲印象を推定する方法として、ゆらぎ特徴を用いた方法があります。
ゆらぎとは「繰り返されるパターンが時間的に変化する現象」で音楽にもゆらぎがあります。
楽曲の音量、ピッチ、リズムのゆらぎ特徴に着目することで、楽曲印象を推定することが可能となっています。

実験

内容

印象による再生順の決定がどの程度違和感を抑えることができるのかを評価するために、以下の4種類の再生順を用意しました。

  1. 聴取者個人の印象に合わせた再生順
  2. 聴取者個人の印象に合わせさらにテンポで並べた再生順
  3. ランダムに並べた再生順
  4. テンポで並べた再生順

の4つの再生順を用意しました。
再生順を決定する楽曲印象については、「明るい-暗い」と「激しい-穏やか」の2種類を使用します。
また、ひとつの再生順に使用するサビ曲は5曲としています。

上記1については、聴取者に楽曲をそれぞれの印象に35曲を分類してもらいます。

分類

そして分類結果をもとに別に用意した65曲の印象を推定し、印象で並べることで再生順が決定されます。

プレイリスト

上記2については、上記1のあとにテンポで並び替えることで再生順が決定されます。

これらの再生順を聴いてもらい、違和感があるかどうかを5段階で評価してもらいました。また、どの再生順が一番好みであるかも回答してもらいました。

 

結果

5に近いほど違和感を抑えられており、良い結果となります。

評価結果

  • 印象順で並べるとランダムより違和感を抑えられる
  • 印象とテンポを組み合わせるとより違和感を抑えられる

ことが結果からわかります。

考察

「印象とテンポを組み合わせた再生順」の評価が「テンポで並べた再生順」の評価を大きく上回ることができなかった結果について

  • 印象推定の正答率が約65%であるため、印象で正しく並べることが難しい
  • 「テンポで並べた再生順」で使用した楽曲の印象が近い

ということが考えられます。

まとめ

楽曲印象で再生順を決定するとランダムより違和感を抑えることができ、また、印象とテンポを組み合わせるとより違和感を抑えることができるとわかりました。

今後は「明るい-暗い」「激しい-穏やか」以外の印象についても検証が必要であると考えています。

 

音声認識による子ども向けアプリ「こえでものがたりをつくろう!」

Googleの音声認識APIを利用し、以下の動作ができるアプリ「こえでものがたりをつくろう!」を作成しました。

  • 昔話の音読
  • 物語の内容の一部変更

 


1.目的

スマートホンユーザの低年齢化

文字入力がうまく行えない子供でも扱えるような子ども向けのアプリを作りたい

現存している物語のパロディを行うことのできる「絵本アプリ」を作ろう!

2.システムの説明

  • 通常の絵本読み聞かせ
  • 音声認識による物語の内容変更

‑Googleの音声認識APIを使い、音声認識を行う

3.工夫した点

  • 音声認識後の複数の内容の変更
  • タイトル画面の追加
  • 画面デザイン
  • オブジェクトの大きさを可動化

4.今後の課題

  • 決まったものしか変更が行えない
  • 変更できる物語が少ない

開発環境
→ Android Studio 1.4
android 5.0.2

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

参考サイト
ハコニワ デザイン

利用図
無料イラスト かわいいフリー素材集 いらすとや


 

C#を用いた最大電圧レベル表示機能付き音声変換器

今回、初めてのデモ大会において、C#を用いて最大電圧レベル表示機能付きの音声変換器を作成しました。

・背景・目的

  • 近年では、様々な場面において音声変換技術は用いられている。
  • その技術にて欠かせない要素として、ピッチ、フォルマント、話速などが挙げられる。
  • 音声データから、まず正確にデータを取り出しそれを加工できればよいのではないか?

・デモ内容

  • 既に録音したwavデータを用いて、ヒルベルトフィルタを用いて任意の周波数分だけシフトし、その変換した波形を出力する。
  • 変換処理と同時に入力信号と出力信号の音声データから変換前と変換後の最大電圧レベルを表示する。

・工夫した点

  • 変換させたい分の周波数の値の入力方法を、シフタ―とテキストボックスの2種類用意し、任意入力をできるようにした。
  • 最大電圧レベルの表示をグラフ表示にして、視覚的に見やすくした。

・今後の改善点

  • 録音機能の追加

→WindowsのAPIを用いて実装を試みたが今回はうまくいかなかった

  • フォルマントを調整できる機能の追加

→フォルマントの抽出方法を理解し、それを加工できるようにしたい

・参考文献

C#によるディジタル信号処理プログラミング 三上直樹 工学社

・ビデオ

Juliusを気軽に使える音声認識システム

C#で簡単に音声認識がしたい!ということで、さっそく作成してみました。

■システム構成

  • 開発言語・・・C#
  • OS   ・・・Windows7
  • アプリケーション開発環境・・・Visual Studio Professional 2013
  • 音声認識エンジン・・・Julius
  • ■Juliusの使用方法

    Juliusはコマンドプロンプト上で実行可能です。実行コマンドは下記のようになっています。

    コマンド例:”julius –C am-gmm.jconf”

    バッチファイルにコマンドを記述しておけば、バッチファイルを起動するだけで、音声認識ができるようになります。

  • バッチファイル
  •    Windowsでコマンドプロンプトに行わせたい命令列をテキストファイルに記述したもの。

    ■システム概要

     今回、Juliusの便利なオプションをそのまま使用するためにプログラムに直接組み込むのではなく、Juliusを起動させる部分はすべてバッチファイルで作成しています。C#ではバッチファイルの起動と出力結果の読み込みしかしていません。
     作成した音声認識システムの起動画面は図1のようになっています。起動画面が立ち上がったら、”音声認識開始”ボタンを押します。すると出力結果欄に”please speak”と表示されますので、マイクに向かって発話してください。認識結果は出力結果欄に出力されます。図1では「こんにちは」と発話したときの実行例となっています。出力結果欄に「こんにちは。」と出力されているのが確認できます。

    音声認識システム

    図1 音声認識システムの使用例

    <参考文献>

    • DOSコマンドを実行し出力データを取得する[DOBON.NET プログラミング道]  (http://dobon.net/vb/dotnet/process/standardoutput.html)

    OpenJTalkを気軽に使える音声合成システム

    C#で簡単に音声合成がしたい!ということで、さっそく作成してみました。

    ■システム構成

  • 開発言語・・・C#
  • OS   ・・・Windows7
  • アプリケーション開発環境・・・Visual Studio Professional 2013
  • テキスト音声合成エンジン・・・OpneJTalk
  • ■OpneJTalkの使用方法

    OpenJTalkはコマンドプロンプト上で実行可能です。実行コマンドは下記のようになっています。

    コマンド例:”bin\open_jtalk -z 2000 -m voice\hts_voice_nitech_jp_atr503_m001\nitech_jp_atr503_m001.htsvoice -ow talk.wav talk.txt”

    バッチファイルにコマンドを記述しておけば、バッチファイルを起動するだけで、音声合成ができるようになります。

  • バッチファイル
  •    Windowsでコマンドプロンプトに行わせたい命令列をテキストファイルに記述したもの。

    ■システム概要

     今回、OpneJTalkの便利なオプションをそのまま使用するためにプログラムに直接組み込むのではなく、OpneJTalkを起動させる部分はすべてバッチファイルで作成しています。C#ではバッチファイルの起動と出力結果の読み込みしかしていません。
     作成した音声合成システムの起動画面は図1のようになっています。起動画面が立ち上がったら、入力フォームに音声合成させたい言葉を入力します。その後、”音声合成開始”ボタンを押してください。すると出力結果欄に”再生開始”と表示されると同時に音声が再生されます。図1では「こんにちは。」と発話させたいときの実行例となっています。

    音声合成

    図1 音声合成システムの使用例

    <参考文献>

    • DOSコマンドを実行し出力データを取得する[DOBON.NET プログラミング道]  (http://dobon.net/vb/dotnet/process/standardoutput.html)

    奏者のための消音ギター楽器音声生成フィルタと頭部運動追従リアルタイムフィルタ

     研究の概要

    • 消音ギターのピックアップ出力に対し,頭部運動に追従した楽器音生成フィルタを適用することで,通常のギター(ボディがあるギター)の音色や音の広がりを再現する研究です.

    •  消音ギターについて
      • 消音ギターとは
        • YAMAHA製の[サイレントギター]やARIA製の[Sinsonido]があります.
          消音ギターは通常のギター(生ギター)のボディー部分を排した楽器です.
          本研究ではYAMAHA製の型番[SLG110N]というサイレントギターを使用します.
      • 利点
        • ボディーによる音の増幅が発生しないことから,場所や時間にとらわれず練習できます.
      • 欠点
        • 通常のギター(生ギター)であれば,ボディーの特性や部屋の響きによって音が変化しますが,消音ギターの場合は,ピックアップでひろった弦の音をヘッドホンから直接聴くことになるため,音の広がりのない無機質な音に聴こえてしまいます.

    • 奏者のための楽器音生成フィルタ
      • 目的
        • 生ギターのボディ特性(放射音周波数特性)・両耳特性(ギターの定位)・空間特性(反射や残響)を再現する楽器音生成フィルタを作成し,消音ギターのピックアップに適用します.消音ギターフィルタのイメージ
      • 測定
        • 生ギターの駒部分に加振機を当て,測定信号を与えます.その時の放射音をダミーヘッドマイクロホンで取得しインパルス応答を取得します.ダミーヘッド測定の様子
        • ダミーヘッドの首を水平方向に回転させながら,左右60度ずつのインパルス応答を測定しました.↓測定したインパルス応答をwavファイルにしたもの
          インパルス応答

    • 頭部運動追従リアルタイムフィルタ
      • 概要
        • 消音ギターを演奏する際の頭部水平回転を取得し,頭部の角度に合わせたフィルタをライン出力に適用し,ヘッドホンから再生します.
        • フィルタを頭部運動に追従させることで頭外定位しやすくなります.
        • 生ギターのボディ放射音周波数特性や部屋の特性(反射や残響)を再現を目指します.
      • 頭部運動の取得
        • Microsoft社製のKinectを使用し,顔の水平角(Yaw角)をリアルタイムに取得し,外部ファイルに出力します.kinectの画面
      • MATLABを使ったリアルタイムフィルタ
        1. 消音ギターのピックアップ出力をオーディオインターフェースを介してMATLAB(数値計算ソフト)に与えます.
        2. Kinectから出力された顔の水平角が入った外部ファイルを読み込み,顔の水平角によってフィルタを切り替えながら消音ギターのライン出力に適用し,計算結果をヘッドホンから出力します.
      • システム図.

    頭部追従システム


    • 評価実験
      • 客観評価:倍音スペクトル距離の比較
        • 生ギターで弦を鳴らした音と,消音ギターのピックアップ出力に 提案フィルタを適用した音との周波数の差を計算します.
          計算式は以下のような倍音スペクトル距離を採用しました.
          倍音スペクトル距離
        • 実験結果
          倍音スペクトル距離結果評価の結果,本研究で提案するフィルタを適用したほうが,生ギターの音色に近づくことが確認できました.
      •  主観評価:シェッフェーの一対比較[中屋の変法]
        • 実際に提案システムを用いて被験者に演奏してもらい,音の広がり,ギターの定位感の評価してもらいました.
          被験者は学生19名 (女:5名 男:14名)で,有意水準5%としました.リアルタイムフィルタの入出力サイズは500サンプルとします.
        • 比較フィルタ
          • A=消音ギターのピックアップ出力
          • B=消音ギター搭載のフィルタ(リバーブ)
          • C=提案フィルタ(頭部運動追従):サンプル数500
          • D=提案フィルタ(0度でフィルタを固定):サンプル数4000
        • 設問
          • 「どちらが音の広がりを感じるか」
          • 「どちらがギターの定位感があるか」
        • 実験結果
          シェッフェーの一対比較によって検定を行った結果,音の広がりに関してはフィルタD(提案フィルタ(0度でフィルタを固定))がもっともよく,フィルタDとBの間に有意差がありました.
          ギターの定位感に関しては,フィルタCがもっともよく,それ以外のフィルタに対し有意差がありました.

    音の広がり
    どちらが音の広がりを感じるか

    ギターの定位感どちらがギターの定位感があるか


    • 結論
      • 頭部運動に追従する楽器音生成フィルタを提案しました.実験の結果,フィルタを適用したほうが生ギターらしい音色になり,定位感,音の広がりに効果があることがわかりました.
      • 今後の課題として,頭部運動追従フィルタのフィルタ長を入出力サイズよりも長くするとクリックノイズが発生する問題を解決する必要があると考えます.

    画像処理を用いた複数話者に対する音声強調の研究

    平成26年10月3日に卒業研究の中間発表がありました。

    そこで私が発表した内容を簡単に説明します。

    ・研究背景,目的

      動画を撮る際に目的の人の声だけを聞きたい。周りの人の声やその他の雑音は聞きたくない。そのように思い、目的音方向の音のみの強調。を研究しています。

    ・使用デバイス

    Kinect

    ・課題(複数人対応)

     カメラ範囲内の複数人から目的である人を見つけ出すため、骨格検出を行う。

     しかし、現在のKinectのスペックでは骨格検出可能人数は2人まで。

     3人以上いた場合は骨格検出対象者を切り替えていくことで解決させた。

    ・システムの流れ

     カメラ画像から目的の人のみを見つけ出し、その人の角度情報を取得。

     その角度でマイクロホンアレイで録音した音にMV法を適用し、スピーカーから出力する。

    キャプチャ1

     

    ・予備実験①

     目的は

     目的の人を見つけ出せるか。

     角度の取得ができるか。

     の2つ

    キャプチャ2

     

    目的のどちらも成功!!!

    ・予備実験②

     目的

     角度を先に与えておき、二人画面上にいた場合の音声強調(MV法)の精度はどの程度か。

     実験の環境

    キャプチャ3

     

     SN比の改善量

     男性方向の音の強調

     1.6949dB → 5.3013dB       約3.6dBの改善

     女性方向の音の強調

     -1.6949dB → 3.4998dB      約5.2dBの改善

     結果

     有効であると判断。

    まとめ

     この予備実験①と②を組み合わせることで画面上に複数人いた場合も目的音方向の音のみを強調することができるはず。

     今後は、この2つを組み合わせることを進めていき、最終的にはリアルタイムで処理できるようにしたい。

    場所検索

    受聴者位置検出による指向性追従スピーカーシステムの研究(研究中)

    研究背景

    人が生活している空間の中には音がたくさんあふれています。その音はさまざまな人に情報を伝えるため発信されていますが、その情報を必要としない人にとっては騒音と感じられます。

    図1

    こういった環境において、音を必要としている人のみに向けて届けることでそれ以外の人への騒音を減らすことができます。

    キャプチャ

    この状況を実現するには、「指向性スピーカー」の開発が必要になります。

    研究目的

    本研究では、複数人が存在する生活空間で特定の聴取者のみへ音を集中させることを目的とします。

    図3

    ※生活空間として一つの部屋を想定

    従来研究

     

    ここでは本研究と関連・類似する目的や、技術について検証されている研究を紹介します。

    • 音の指向性を作る手法
    • 音を届けたい場所(受聴者)の検出
    • 指向性の向きをかえる手法

    についてそれぞれ実験・検証されています。

    図4

     

    これらの研究には、用いた技術によってそれぞれ特徴があります。

    01

    人認識の精度

     

    音を届けたい場所(受聴者)の検出のために、人の位置を見つける2つの手法が研究されています。”画像”による認識と、”深度“による認識です。

    この二つを比べると、奥行きの情報を得られるという点で、深度による人認識のほうが優れています

    02 03

     

    音量・音質

    指向性を持つ音を作る」には、超音波スピーカーがよく用いられます。しかし超音波スピーカーは優れた指向性を持つ一方、短所も存在します。1つは通常のスピーカーに比べて「音質が悪い」こと。もう1つは「音量に制限がある」ことです。音量については、人体に向けて超音波を照射する際、健康への影響がでることが考えられるために制限がかかります。

    設置・組込み、可搬性

    指向性の向きをかえる」とき、2つの手法が考えられます。複数のスピーカーから「出る音を制御する」(スピーカーアレイ)か、指向性を持つ音を出す「スピーカーの向きをかえる」、の2つです。

    後者のスピーカーの向き自体をかえる手法については、設置・組込みに不便持ち運びがしにくいといった問題が存在します。スピーカーの向きをかえるということはシステムにモーターなどの可動部が存在することになり、”動くのに十分なスペースの確保”、”移動させる際の破損の危険”といった問題への対処が 必要になります。

     アプローチ

    04

    先述の従来研究を踏まえて、人認識の精度音量・音質設置・組込みや可搬性全てにおいて問題のないスピーカーシステムの開発を目標に研究を行います。このために、「深度情報」を用いた人認識、超音波やモーターを用いない「スピーカーアレイ」とその「制御」による音の指向性生成・方向制御といった技術組み合わせます。

    検討すべき課題と対策案

    (さらに…)