Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
クロマベクトルって何?
Search
fkubota
March 02, 2020
Programming
2.6k
1
Share
クロマベクトルって何?
クロマベクトルについて社内で発表した
fkubota
March 02, 2020
More Decks by fkubota
See All by fkubota
相対性理論の入門の入門
fkubota
0
120
データドリブンな組織の不正検知
fkubota
0
2.4k
JupyterNotebookでのdebug入門(サンプルは説明欄にあります)
fkubota
6
13k
ルールベース画像処理のススメ
fkubota
17
16k
Kaggle日記について
fkubota
2
2.7k
MoAコンペで気づいたこと
fkubota
1
790
鳥コンペで惨敗した話とコンペの取り組み方
fkubota
1
6.9k
生産性と戦った僕の1年の記録とツールたち
fkubota
6
6.7k
Other Decks in Programming
See All in Programming
ハーネスエンジニアリングにどう向き合うか 〜ルールファイルを超えて開発プロセスを設計する〜 / How to approach harness engineering
rkaga
28
19k
PHPer、Cloudflare に引っ越す
suguruooki
1
140
Terraform言語の静的解析 / static analysis of Terraform language
wata727
1
140
Road to RubyKaigi: Play Hard(ware)
makicamel
1
560
Are We Really Coding 10× Faster with AI?
kohzas
0
140
サークル参加から学ぶ、小さな事業の回し方
yuzneri
0
160
Augmenting AI with the Power of Jakarta EE
ivargrimstad
0
300
(Re)make Regexp in Ruby: Democratizing internals for the JIT
makenowjust
3
1k
決定論 vs 確率論:Gemini 3 FlashとTF-IDFを組み合わせた「法規判定エンジン」の構築
shukob
0
160
空間オーディオの活用
objectiveaudio
0
140
mruby on C#: From VM Implementation to Game Scripting (RubyKaigi 2026)
hadashia
2
1.7k
「OSSがあるなら自作するな」は AI時代も正しいか ── Build vs Adopt の新しい判断基準
kumorn5s
7
2.5k
Featured
See All Featured
Deep Space Network (abreviated)
tonyrice
0
130
Unlocking the hidden potential of vector embeddings in international SEO
frankvandijk
0
790
HU Berlin: Industrial-Strength Natural Language Processing with spaCy and Prodigy
inesmontani
PRO
0
370
Agile that works and the tools we love
rasmusluckow
331
21k
How to optimise 3,500 product descriptions for ecommerce in one day using ChatGPT
katarinadahlin
PRO
1
3.6k
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.7k
Why Mistakes Are the Best Teachers: Turning Failure into a Pathway for Growth
auna
0
130
Build your cross-platform service in a week with App Engine
jlugia
234
18k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
35k
Making the Leap to Tech Lead
cromwellryan
135
9.8k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
34
2.7k
Information Architects: The Missing Link in Design Systems
soysaucechin
0
920
Transcript
クロマベクトル ってなに? fkubota
- 今日は音響特徴量で有名なクロマベクトルについて話しま す。 - あまりいい解説がないので自分で作ることにしました。(理解 の助けになればいいなとおもいます。)
今日 の ゴール 「以下の図を理解する!!」 よく見るよね
まずは 疑問を 列挙しましょう
なんで12個? (ドレミファソラシドは8個だよ?) 抜けてるところがあるけど、 この図は何がしたいの? うーん...
他にも - 音階って何? - 半音て何? - オクターブってなに? - ドレミファソラシドって何? うーん...
C C# D D# E F F# G G# A
A# B まずは 音階について 理解しましよう
音階の種類 平均律 純正律 & - 身近な楽器ではこっちが使わ れてる - 音階の間隔が一定なのが特徴 -
今日はこっちだけ話します - 和音が大事なオーケストラとか はこっち使う - 音階の間隔が一定ではない
平均律の前にオクターブの説明 ド ド 1オクターブあがると音の高さが 二倍になる (ピアノのド--->ドは高さ二倍(1オクターブあがる))
平均律とは 1オクターブを 12等分したもの!!
どういうこと? 図で説明しましょう。 ド ド 例えばド--->ドの1オクターブを12等分します (レ--->レでもなんでもいいです )
12等分と言っても、単純に分割するわけではなく、 隣り合う音の周波数の周波数比が以下のようになるように 分けます 基準の周波数を1として、 ド ド 1オクターブ高い (周波数2倍)
これが平均律で定義された音階!! そして半音、全音の定義は図の通り!! - 隣は半音違い - 2つ隣は全音違い 半音 全音 ドレミファは?
ドレミファソラシド ? 以下のように割り振られてます。 ド ド レ ミ ファ ソ ラ
シ 半音 - なんと、半音違いの関係にあるのは、「ミ」と「ファ」、「シ」と「ド」だけ でした。 - つまり、 - 「ファ」は「ミ」に比べて 2^(1/12) 倍高い - 「レ」は「ド」に比べて 2^(2/12)倍高い 余ったやつらは?
余ったやつらは? ピアノで考えるとわかりやすいです。 ド レ ミ ファ ソ ラ シ ド
ド ド レ ミ ファ ソ ラ シ
「ド」は何Hzなの? - 当然の疑問ですね。 - 国際基準があります。 - ピアノの鍵盤の真ん中付近にある 「ラ」を440Hz とする。 これが国際基準です。
ド レ ミ ファ ソ ラ シ ド 440Hz
「ラ」が決まれば「ド」 も決まる ド ラ 440Hz ド
ド ド レ ミ ファ ソ ラ シ 記号について C
C D E F G A B C# D# F# G# A# イタリア アメリカ
もうわかりましたね?
この図は、 「ドレミファソラシド」 を表しています ド レ ミ ファ ソ ラ シ
ド この図をクロマグラムと いいます
クロマべクトルとは... ある音に 「C C# D D# E F F# G
G# A A# B 」 がどの割合で含まれているのか? をあらわしています。 C C# D D# E F F# G G# A A# B 0.1 0.3 0.5 0.02 0.4 0.1 0.1 0.2 0.1 0.9 0.2 0.1 Aが一番多く含まれている !!
実装タイム!! https://github.com/fkubota/Lightning Talk/tree/master/009_chroma_vector /notebook/01_chromagram.ipynb
次は数式で理解しよう
クロマべクトルの計算方法 https://www.slideshare.net/akinoriito549/ss-23821928 :パワースペクトル :バンドパスフィルタ
少しずつ理解する - 例えばあるスペクトルで ド(261.6 Hz)と ラ(440 Hz) はどちらが多く含まれているか知 りたい。 -
どうする? ほしい周波数にバンドパスフィルタをかけて積分!!
ド(261.6 Hz) ラ(440 Hz) n = ド or ラ バンドパスフィルタを掛けて積分
「ラ」は1種類じゃない ラ ラ ラ ラ ラ 440 880 1760 220
110 オクターブ違いのラがある それぞれの「ラ」で バンドパスフィルタ を用意
「ラ」のバンドパスフィルタ群 n = ラ オクターブごとに バンドパスフィルタを掛けて積分
以上です!!
まだ残る疑問 - ピアノとギターの「ド」はなんで違う音に聞こえるの? - ピアノのド(261.6 Hz)のスペクトル見ると思った感じ と違うんだけど...
次回!! 音色について LTします!!
None