鈍足ランナーのIT日記

走るのが好きな5流のITエンジニアのブログ。

趣味の範囲は広いけど、どれも中途半端なクソブロガー楽しめるWebアプリを作ってあっと言わせたい。サーバーサイドPerl(Mojolicious)、クライアントサイドVue.js。Arduinoにも触手を伸ばす予定。

Audio::Analyzer::ToneDetectと戯れる

人の音域を測定するアプリでも作るかといろいろ調べてみた。すでに、スマホアプリもあるみたいなので二番煎じなのではあるが・・・

use strict;
use Audio::Analyzer::ToneDetect;

use FindBin;

    my $td = Audio::Analyzer::ToneDetect->new(
        source => "${FindBin::Bin}/data/4000.wav" ,
        sample_rate => 44100);

    my $tone = $td->get_next_tone;

    print $tone;

以下のサイトから4000ヘルツのファイルをダウンロードしてきて試してみたら4005.17578125という値が返ってきた。

いい感じである。人の声でやってみないとですなぁ。。

recoder.jsというライブラリがあるらしく、それでサーバサイドに送ってあげて 解析する形かな。

jwagener/recorder.js · GitHub

php - HTML5 & getUserMedia - Record Audio & Save to Web Server after Certain Time - Stack Overflow

サーバーにBLOBデータをフォーム形式で送るには・・

これを見て学ばねば・・・

アップロードしたあと、move_toでテンポラリに移動させようとしているんだけど。どうもファイルが作られない。

https://github.com/dokechin/sound_web

morbo ./script/sound_web
http://localhost:3000/index.html