音メディア処理研究室

 
デモ大会

雑談対話iOSアプリ「トモちゃん」

2014年12月19日に行われた人工知能第一研究室の3年生デモ大会での発表内容です。

私は今回、雑談対話iOSアプリ「トモちゃん」と題して発表させてもらいました。

このアプリはSiriのようにユーザが発話した内容に対して、チャット画面上で応答してくれる、というアプリです。こちらはdocomoが無料で提供してくれている雑談対話APIを利用しています。また、参考にさせていただいた資料を以下にまとめておきます。

・Docomo Developer support→https://dev.smt.docomo.ne.jp/

・ドコモの「しゃべってコンシェル」やAppleの「Siri」のようなサービスが誰でも作れる!?ドコモが提供する「雑談対話」APIを試してみた!→ http://qiita.com/asakahara/items/3c582d4073fa67ca599a

使用した環境、機材
・OS X
・Xcode6.0.1

実際の動作の様子、発表の内容を動画にしています。ご覧ください。

LeapMotionを用いたEV3のジェスチャー操作

 米LeapMotion社から発売されているLeapMotionで認識できる手の動きやジェスチャーを用いてロボットを操作します。LeapMotionはUSBケーブルで、ロボットはBluetooth通信でそれぞれPCに接続しています。使用しているロボットはレゴ社が発売している教育用ロボット”LegoMindstormEV3”です。

http://youtu.be/9pOS0eGaUr0

■システム構成

  • 開発言語・・・C#
  • OS    ・・・Windows7
  • アプリケーション開発環境・・・Visual Studio Professional 2013
  • センサ ・・・LeapMotionController
  • ロボット・・・LegoMindstormEV3
  • LeapMotionSDK 2.1.6+23110
  • LEGO MINDSTORMS EV3 API v1.0 (https://legoev3.codeplex.com/)
  •  

    ■システム概要

     LeapMotionから読み取った手の座標を利用してロボットのモータパワーを決定し、ロボットに送信します。システムの流れは図1のようになります。モータパワーの算出方法は図2のようになります。

    LeapMotion_操作図2

    図1 システムの概要図

    LeapMotion_MotorPower

    図2 手の位置からのモータパワーの算出

    <参考文献>

    • LegoMindstormsEV3  (http://www.afrel.co.jp/lineup/mindstorm-ev3)
    • Kinect×教育版LEGOMindstormsEV3 開発ガイドブック (同上)
    • LEGOMINDSTORMS EV3 API (http://legoev3.codeplex.com/)
    • LEAPMOTION  (https://www.leapmotion.com/?lang=jp)
    • LEAPMOTION Developer Portal (https://developer.leapmotion.com/)
    • LeapMotionDeveloperSDKで開発できる環境を整える(WindowsC#編)(http://www.naturalsoftware.jp/blog/8389)
    • LeapMotionで指の先を画面に表示する(https://code.msdn.microsoft.com/windowsdesktop/LeapMotion-c52eb8a8)

     

    音声データを扱ったゲーム

    2014年12月19日に行われた3年生デモ大会での発表内容です。
    今回のデモでは音声データ(今回は.wavと.mp3データやマイク)を読み込みスピーカやマイクを移動させていくゲームを作成した。

     スピーカは音量によって高さが変化するように作り、マイクは声の高さ(周波数)の高さによって操作できるようにゲームを作成していった。
    音符の速度は一定速度で進んでいくように設定していった。

    使用した環境
    ・Windows7
    ・processing-2.2.1-windows64bit

    実際の動作は以下の動画に載せます。

    Q.なぜ音量が大きいときに音符の間隔を狭くしていくように設定したのか
    A.音量が大きいときは、曲が盛り上がっていると判断し、盛り上がっているときは音符の数を増やしていったほうがゲームとして楽しくなると考えたためである。

    Q.なぜ300Hzで一番上の位置近くに行くように設定したのか
    A.300Hzは3オクターブのDとD#の声の間にあり、テノールはC3~C5の範囲の声域を持ち、普段の生活で300Hz以上の声を出す機会がないと考え、今回は300Hz程度で一番上に行くように設定した。

    まとめ
    今回は声を出すということを用いてマイクを操作する方法を採ったが、実際に操作するとなるとマイクの位置が不安定になり、理想的な場所に持っていけないなどの問題があったので、ゲームとして楽しむためにはマイクの操作性について検討していく必要があると感じた。

    補足
    ゲームとして楽しむために点数を出すようにしたり、最後にクリア画面などを出すようにした。

     

    心音の波形表示アプリ

    iPhoneやiPodを胸に当てて心音を録音し、再生しながら心音の波形を表示するアプリを作成しました。

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

    成功例をまた後日貼り付けます。

    使用パソコン:iMac

    使用媒体:iPad mini

    2013年12月19日デモ大会発表

    Kinectを用いた人の向き感知と録音

    2013年12月19日に3年生のデモ大会が行われました。

    「Kinectを用いた、人の向き感知・録音」を行いました。

    下の動画はその様子です。

    わかりにくいかも知れないので簡単にデモ内容の説明

    ①人を見つけるとその人の向きをFace Trackingにより検出。

    ②正面を向いていると10秒間の録音を開始(わかりやすいよう録音開始時と終了時にビープ音)。

    ③5秒間のインターバル後①に戻る。

    開発環境:visual studio

    使用ツール:Kinect

     

    音の感知による音量調節

    必要環境、機材

    ・PC(MATLAB)

    ・マイク

    プログラムを実行し音楽を流す。手拍子などの大きい音を感知すると音量を下げるようになっており一定の音量を下回るとプログラムが終了する。

    また、1度でも音量が下がっている状態で放置すると少しずつ音量がもとに戻っていくように設定されている。

    家で音楽をスピーカーで流しながら聴いている際に来客があり

    「音楽をとめたいがすぐに手が届かなくて操作がめんどうだ!!」

    という問題を想定し作成。

    映像↓

    https://www-ai1.csis.oita-u.ac.jp/wp-content/uploads/2014/03/sample1.wmv

    ケプストラム解析による声のピッチ抽出と音階の割り当て

    デモの内容は下の動画で説明しているようにマイクから入力された音声を解析し、基本周波数(ピッチ)とそれに対応する音階を画面に出力するというものです。

    動作環境はMATLABを使用しています。

     

    音声電卓アプリ

    簡易的な電卓に押した数字と入力した数字が発音されるように機能をつけた電卓アプリを作成しました。

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

    作成に使ったパソコン:iMac
    使用デバイス:iPad

    2013年12月19日デモ大会発表