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

声紋・ソノグラム・スペクトルグラム

声紋(sonogram, spectrogram)は野鳥の声の分析に不可欠なツールです。横軸に時間、縦軸に周波数を取って、音の強さを色で表示します。

ここで用いられている処理は、音声である波形を周波数の信号に変換する時間−周波数変換(フーリエ変換)です。フーリエ変換するときに幾つかの調整できるパラメータがありそれぞれがどう関係しているのかをまとめてみました。案外、まとめて書かれているものがありません。そのため自分で調べました。厳密に定義しているのではなく備忘録です。初心者向けにコーネル大学の作成したCanary/Ravenのマニュアルの付録に鳥の声のスペクトル解析の章がありこれを参考にしています[1]。

音声データのパラメータ

波形とは時間に対する強度が連続的に変化する信号を表します。音声は波形であり、ICレコーダは連続の波形を離散化(デジタル化)されて記録されます。離散化された信号も波形と呼びまし、今はディジタル信号を意味する事が多いです。

連続な信号をとびとびの信号で表すので失われる情報があります。しかし、必要とする周波数帯域の2倍以上でサンプリングレート(サンプリング周波数)で離散化すれば完全に復元できるとシャノンさんが証明しました。

この関係は、次の表のようになります。


サンプリングレート(SR) 標本点の周期(ΔT)
192KHz5.2μs
96KHz10.42μs
48KHz20.83μs
44.1KHz22.67μs

音を声紋(スペクトログラム)にするには短い一定期間の波形データを切り出して(スライス)これを周波数変換し並べます。この短時間の周波数変換を短時間フーリエ変換:STFT(Short Time Fourier Transform)と呼びます。問題はこの時間の選び方です。時間と言っても離散化されているのでその切り出す波形の個数です。切り出された波形をフレームと呼んだりチャンクと呼んだりします。ここではフレームと呼びます。1フレームの波形の個数をフレーム長(Flame Length)と呼びます。各アプリではもっとわかりやすい言葉を使っていますが同じ意味です。

Amadeus Pro : FFT Size
Audacity : ウィンドウサイズ

鳥の声の解析はSRは44.1Kか48KHzのPCM録音が多いのでこれをベースに考えます。


サンプリングレート(SR) FFTサイズ(128) FFTサイズ(256)FFTサイズ(512)FFTサイズ(1024)FFTサイズ(2048)
44.1KHz2.9ms5.8ms11.61ms23.2ms46.44ms
周波数分解能344Hz172Hz86Hz43Hz22Hz
48KHz2.6ms5.3ms10.7ms21.3ms42.7ms
周波数分解能375Hz188Hz94Hz47Hz23Hz


フレーム長(FFTサイズ)が1024の場合、20msを越えます。これはフーリエ変換の特性としてフレームの中の周波数成分を抽出するためにフレームの中で平均化していることになります。

アオジの場合、地鳴きは30ms程度です。フレーム長が20msで切り出すと地鳴きの長さの2/3を持つ事になり、フーリエ変換はその長さで平均化する事になるので時間と強度の情報が曖昧になってしまいます。

他方、FFTサイズと周波数分解能は積が一定と言う関係があって、次式で表されます。

周波数分解能 = 1/ FFT size

なので表の通りになって、アオジの地鳴きの下限周波数が7KHzだとすると、FFT size=128では350Hz程度で5%の誤差を持つ事になります。ちょっと大きいね。本当は後で述べるフィルタを掛けるとフィルタ周波数帯域の議論も必要です[1]。


そう思うと地鳴きの解析、あるいは短い時間に音程が極端に変化する(トリル)声の解析では、フレーム長(FFTサイズ)の選定は大切な事が分かります。


地鳴きの解析ではFFT Size=256か512かが適当で、時間や強度分布を議論したい場合は256を、周波数を議論したい場合は512を選ぶ事にしたい。そして、時間と周波数の両方を一つのFFT Sizeで解析する場合は、小さいサイズと大きいサイズの2つ声紋を作り比べなさいと先の文献に書いてあります。

短いFFT Sizeの場合はもう一つ大切なパラメータがあります。フィルタです。幾つも種類がありますが、色々比べた結果Hammingで良いと思います。

結論:

そこで、地鳴きの解析にはモノラル、44.1KHzサンプリング(必要に応じてダウンコンバート)、フレーム長(FFTSize=512点)、Hammingフィルタをデフォルトにしてみたい。


参考文献:



[1] "A Biologist’s Introduction to Spectrum Analysis, " Canary 1.2 User’s Manual,  Appendix B, 1995, Cornell Laboratory of Ornithology. 




コメント

このブログの人気の投稿

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

瞬間日記をiPodを購入した2010年から使ってきたが、day oneが人気なので使ってみた。なかなかよかった。コマンドライン(CLI:Command Line Interface)から入力できるし、クラウドで同期できるのもいい。見た目もきれい。安定しているのもいい。 という訳で、瞬間日記からday oneにデータを引っ越しすることにした。 (このページで半角の > と表示されたら半角の”>”記号だと思ってください。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 というわけで直しても自己発振は直らないかも。明日組立ててみよう。