ラズパイ・オーディオの製作

ラズパイ・オーディオの製作
中間報告1
14EC004
飯田 頌平
コンセプト
音声でオーディオに命令する
なぜ音声認識をするのか?
• 音声認識はマイクの質が課題
• もともとの目的はRaspberry Piでデバイスドラ
イバを開発すること
– ADCをRaspberry Piに搭載できるように
• シリアル通信なので音質が良い
– 追加のDACをRaspberry Piに搭載
• bcm2835を使わずに再生できる
製作物概要
構成部品
• Raspberry Pi 2
• 無線子機
• USBカメラ
– オーディオ入力端子として使用
– 将来的にADCに置換
• スピーカー
外部仕様
• 音楽の再生・停止
– 「再生」「停止」と呼びかけると実行
• ファイル選択
– ファイル名を呼びかけて指定
• 対話機能
– 特定の文言を受け取ると、返事をする
音声認識
音声入力
• 音楽認識エンジン
– juliusを使用
音声認識サーバ
• openCVの音声版
• 入力-サーバ間
クライアント
– USB/シリアル通信
• サーバ-クライアント間
パケット解析
– TCP/IP通信
• パケット解析
スクリプト
– XMLパーサを使用
音楽の再生・停止
• 再生命令・停止命令を認識すると実行
• シェルスクリプトによって再生
– 停止はプロセスを抹消することで実現
– 現状ではpythonでの再生が難しいため
• 参考:Audio problem with snd_bcm2835 + PyAudio
(sound stuttering)
– https://github.com/raspberrypi/linux/issues/994
ファイル選択
• 認識された音声から命令語を得る
• 命令語をデコードして曲の情報を取得
– 曲ファイル名
– ルートまでの親ディレクトリ
– 拡張子
– その他特徴(ジャンル、発表年など)
• 得られた情報から曲ファイルのパスを取得
対話機能
• モード切り替え時の案内などを合成音声で知
らせる
– 音声合成ツール「AquesTalk」を使用
• 簡単な会話も可能
• 自動でニュースも読み上げてくれる
– クローラーでニュースサイトのトピックを取得
– 他の情報も取得可能(天気など)
今後の展望
• デバイスドライバは開発が難航
– コンパイルに際し膨大な通信量を要する
• 一回コンパイルしてみるのに半日~丸一日
– よって、努力目標とする
• アプリケーション部分(音声認識他)
– シェルやpythonで操作できる限りのことが可能
– AI部分について重点的に挑戦したい
– 余裕があれば音声信号処理もやってみる