音メディア処理研究室

 
デモ大会

加速度センサを用いた音楽演奏アプリ 「Shake Sound」

Android端末を振ることで音を鳴らして演奏するアプリ「Shake Sound」を作成しました。

加速度の値によって音階を設定し、対応する加速度の時にボタンを押すことで、それに応じた音を鳴らすことが出来ます。

よく楽曲で使われる調を実装しており、ボタンで切り替えることが出来ます。

解決すべき課題は多いですが、今後解決していきたいと思います。

https://youtu.be/u9iUBW8oPrU

環境:Android Studio

使用デバイス:Android

声の大きさを検知する障害物ゲーム

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

マイクを使って声を発すると声の大きさに合わせてジャンプし障害物を飛び越えていくゲームを作成しました。

時間は15秒です。

自動的に障害物が発生するモードと、キーボード操作から障害物を発生させるモードがあります。

キーボード操作での障害物発生は、A → 1段差発生 Q → 大きな段差発生

D → 1段差消滅  E → 大きく段差消滅

となっています。

また、今回は画像、音源ともにフリー素材を使用しました。

動作の詳細は以下の動画をごらんください。

https://youtu.be/nlvO6QdHeKs

開発環境 : Processing2.1.1

実装環境 : Windows x64ビット アプリケーション

参考文献: サウンドの基本(minminライブラリの使用)[http://r-dimension.xsrv.jp/classes_j/minim/]

アラーム・着信音に利用可能な音声変換アプリ

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

録音した音声を変換して再生したり、保存することが出来るアプリを作成しました。

以下の変換機能があります。

  • speed・・・速さを変更
  • pitch・・・ピッチを変更
  • volume・・・音量を変更
  • echo delay・・・エコー、ディレイを行う
  • echo volume・・・エコー、ディレイした音の音量変更
  • reverse・・・逆再生

 

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

開発環境:androidstudio 1.4.1

使用デバイス:Android 5.0.1

参考文献:Androidアプリサンプル全集

 

方位で鳴らす音階アプリ

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対応~ (教科書シリーズ)」  松岡 謙治 (著)

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

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)

    ゲームアプリ「フリックドロイド」

    サンプルプログラムを変更し、Androidゲームアプリを作成しました。

    変更点は以下のとおりです。

    • アプリ起動後にスタート画面を追加
    • 蜂の種類を増やし、得点をそれぞれ変更(黄色の蜂が1点、緑色の蜂が3点)
    • 爆弾を追加(マイナス5点)
    • 一時停止・リトライ機能を追加
    • ドロイド君の減速
    • ドロイド君などが画面の端で跳ね返る

     

    ゲームの内容としては、制限時間30秒以内にドロイド君をフリックして操作し、蜂を消していくゲームです。

    蜂を消すとスコアがあがっていきます。蜂は2種類いて黄色の蜂が1点、緑色の蜂が3点です。

    爆弾に当たってしまうとマイナス5点となります。

    詳しいゲームの様子は以下の動画をご覧ください。

     

    開発環境:eclipse

    使用デバイス:Android

    サンプルプログラムは

    「10日でおぼえるAndroidアプリ開発入門教室 第2版」寺園聖文 (著)/ 翔泳社 (出版社)

    のプログラムを使用させていただきました。