スキップしてメイン コンテンツに移動

Mathematica 9.0買ったドー

データ解析をやりたい。

音声データをマルチマイクで加工して音源推定を行いたいのだ。いずれiPad用のアプリを開発するにせよまず、週末の限られた時間であれこれは試せないので効率的なプログラム言語が必要だ。

パソコンがまだキラキラしている頃、大学出たての頃、MacでMathematicaが使えることを知ってどうしても欲しくて大枚をはたいてMathematica 2.2を買った。16万円はしたと思う。MacOS8.Xの頃ではなかったか。手続き型の関数を勉強したものだ。

それから会社で使ってきたものの個人的には購入はできないできた。値段が高いから。MacもOSがOSXになり、MacOS9互換のRossetaもサポート停止しオールドマック(cube)をこれ専用にメインテナンスしてるのみ。

一年に数回数式処理がしたくなるもののMaximaを使ったりしてみた。

でも、やっぱり物足りない。効率的でない。

20年ぶりにMathematicaを買った。HomeEdition for Mac 9.0だ。日本の代理店では7万円以上するが、Wolframのストアでは67000円だった。この差はなんだ?これを10年使い切れば元もとれよう。

使ってみるとこれが凄い進化。基本の構造は変わってみたいだ。

それでは早速使ってみよう。マニュアルを読めばすむことなのだが、備忘録として書き留めておく。というより思い出し。

(1)音声データの取り込み
  • Directory[]   フォルダの確認
  • SetDirectory["~/Desktop"]  作業ディレクトリをデスクトップに設定
  • data=Import["020A_120422_0812.WAV"] 音声データの取り込み。成功、簡単です。アウトプットに再生ボタンとかついているのでこれで聞こえた。なんとこの中にソナグラム(スペクトログラム)が既に表示されている。Mathematicaではスペクトログラム(Spectrogram)という。リストを与えれば表示するようだ。WAV形式のファイルを左右のチャンネルに分解しよう。
(2)音声データの理解
  • Import[]関数は強力だが自動でなんでもやりすぎる。ちょっと音声データをお勉強。まずフォーマットが"Sound"というのがある。
  • ここにサウンドの表現形式があった。
  • Short[InputForm[data]]で形式を確認できた。出力は、次の通りだった。Out[22]/Short=Sound[SampledSoundList[{{0., 0.,    0., << 1613276 >>, -1.19209*10^-7}, {0., << 1613279 >>}}, 96000]]
  • フムフム。
  • data[[1,1]]はSampledSoundListの形式で左右のチャンネルの音声データが入っている。
  • data[[1,2]]にサンプリングレートが入っている。
  • ListPlay[rightch, SampleRate -> rate]とすれば右の音声が再生できた。

(3)ソノグラム(スペクトログラム)の表示
  • Spectrogram[rightch]で表示できました。









  • Spectrogramの2つ目のオプションnは"長さn == 2^(Round[Log[2,(Sqrt[m])]] + 1)のパーティションを使う"とある。ここで、mはデータ長。計算すると2048だった。この数字を大きくしたり小さくするとフーリエ変換の変換粒度を変えられる。また、窓関数も変えられる。Optionで
  • SampleRate -> rateとすると横軸は時間縦軸は周波数で表示された。下の図は256ポイントでサンプリング。













  • 縦軸はダウンコンバートして調整すればいいのかな。これは専用ソフト(Amadeus Pro)にはまだかなわない感じだ。いやPlotRangeを使えばいいんだ。PlotRange ->{{0, 16}, {0, 12000}}とか。





いやー簡単です。ここまでで2時間くらい。まだまだ楽しめそう。

参考にしたページ

コメント

このブログの人気の投稿

瞬間日記のデータをday oneに移動させるのだ

瞬間日記をiPodを購入した2010年から使ってきたが、day oneが人気なので使ってみた。なかなかよかった。コマンドライン(CLI:Command Line Interface)から入力できるし、クラウドで同期できるのもいい。見た目もきれい。安定しているのもいい。 という訳で、瞬間日記からday oneにデータを引っ越しすることにした。 (このページで半角の &gt; と表示されたら半角の”>”記号だと思ってください。HTMLの仕様のインプリバグでしょう。) 特定の日記アプリ間のデータの移動とは人生で一回しかないだろうから汎用性など考えずに間違えないように慎重にすることが大切だ。確かめて確かめて。このページはそんな備忘録である。また、瞬間日記のデータをday oneに移動させたという記事も見つけられなかったので誰かのお役に立てるかもしれない。でも自己責任でね。 瞬間日記は独自フォーマット(.dat3)や標準的な(.sqlite)、(.csv)でもMacにバックアップできる。使い勝手のいいcsvファイルは本文だけで写真情報が欠落している。瞬間日記のデータを引き上げるのは色々試したが、テキストばかりでなく写真も移動させたいの結局メールでバックアップすることにした。瞬間日記側で自分にひと月毎のバックアップをメールする。3年半分。ソチオリンピック開会式を見ながら作業でもれなく終了。 これは瞬間日記が30枚しか1つのメールに写真を貼付できないので、ひと月分だけせっせとメールする。 届いたメールはOSX側のmail.appで開くが、~/Libraryに保存されているelmsでなく、単にテキストファイルでmail.app側の機能を使って出力することにする。 瞬間日記のデータを取り出し、day oneにエントリできるくらいの粒度のファイルにするまでの流れ: iPodの瞬間日記のひと月分に区切ったバックアップデータを自分のメールアドレスに送信する OSXのmail.appで受信したメール全部(件名"MomentDialy"で始まるメールを一つのメールボックスに束ねる。例えばMomentDiaryというメールボックスに全部入れる mail.app上のメールボックスMomentDiary内の全部のメールを選択する。つまり⌘+a。

鳴き声からの識別(How to identify the bird from its sound. )

鳥はその暮らしの中で様々な音を出します。 朗々と鳴く囀り、冬の地鳴き、飛ぶ時の羽音、何かを突っつく時の音、翼を体にぶつけて出す母衣(ほろ)うち、虫を探しているのか枯葉をひっくり返すときにでるカサコソと言う音。その中にあって、自己を主張しコミュニケーションとしての囀りや地鳴きの声は鳥の名前を探り当てる大いなる情報です。 鳥の鳴き声を聞いて、なんて言う鳥が鳴いているんだろう、とバードウォッチングの最中に思う事はしょっちゅうです。ベテランのバードウォッチャーはこの声は○○と教えてくれます。では、聞く相手も居ないとき、バードウォッチングしている仲間の誰も分からないとき、鳥の声からどう鳥の種名を探り当てる事ができるでしょうか。このページではそんな事を考察したいと思います。 参考にするレファレンスCDはこの4冊:蒲谷1996(蒲谷2004)、上田1998、松田2016、植田2014、このページの下にリンクを張りました。この他にも、 バードリサーチ鳴き声図鑑 もあります。 xeno-canto も有名です。 それでは、鳥の鳴き声から種名同定までの幾つかの方法を見て行きましょう。 初級編 方法1)探鳥会で人に聞く 当たり前ですが、知っている人に聞くのが一番手っ取り早いです。 バードウォッチングの初心者は見るモノ聞くモノすべて新鮮で教えてくれる人もたくさんいます。探鳥会に参加してその場所で年中見られる普通種をまず覚える事になります。これが”ものさし”となってこれと同じか違うかが分かれば、聞き分けられる数が多くなってきます。 方法2)さえずりナビを試す。 バードリサーチが”さえずりナビ”をスマートフォン向けに作っています。 家の周りで,ハイキングに行ったとき,鳴いている鳥の種名を知りたくなることがあります.「さえずりナビ」は,場所・季節・声のタイプなどから,その鳴き声の鳥を検索してくれます.姿や形の専門知識が無くても検索ができ,その鳴き声を聞くことができます. あまり使った事無いのですが、twitterではまあまあのコメントが多いです。 中級編 方法3)録音して似ている声をCD/WEBで調べる 録音できれば後で調べる事ができます。ICレコーダも小さく安くなってきました。持っていなくても携帯電話やコンパクトカメラの動画機能でとりあ

電解コンデンサの容量抜けを測ってみた

中古オーディオ屋でスーパーウーハーを買ってから7〜8年経つだろうか。 1989年に発売されたONKYOの SL-10 という機種で、現役で商品が店頭に並んでいた時にピアノ曲に深みが増すことにちょっとした感動を覚えて中古屋で見つけた時2万円で即購入したのだ。 スピーカのエッジのクズがエンクロージャのダクトから出てきて開けてみたら見事エッジ全体が下手っていた。これを奇麗にして、ウレタンエッジに交換することにした。写真1、と写真2がそのBefore/Afterだ。 写真1 SL-10のスピーカのエッジを交換してみた (エッジを取り除いた状態) 写真2 SL-10のエッジを交換したスピーカ また、SL-10が勝手に自己発振する様になっていたのでコンデンサの容量が抜けたと想像してこれらを交換することにした。これは電解コンデンサの容量が抜ける事でフィードバック回路の時定数が変わってしまいネガティブフィードバックがポジティブフィードバックに位相が回って知ったのでは予想した。 電解コンデンサを交換したSL-10のコンデンサ 交換した電解コンデンサ達(容量は抜けていなかった)  マルツ電波で発注しておいたオーディオ用のコンデンサを付け替えた。ただ、それだけでは詰まらないので交換したコンデンサを測ってみた。使った測定器は卓上テスタ(GBW 9000A)の付属機能。最大20μFまでしか測れなかったが、結論からすると交換した電解コンデンサの容量抜けは無かった。 測定例 定格(μF)   実測(μF) 10       10.19 10       10.00 4.7       4.78 3.3       3.27 1.0       1.01 0.47       0.46 というわけで直しても自己発振は直らないかも。明日組立ててみよう。