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
1
2.5k
クロマベクトルって何?
クロマベクトルについて社内で発表した
fkubota
March 02, 2020
Tweet
Share
More Decks by fkubota
See All by fkubota
相対性理論の入門の入門
fkubota
0
71
データドリブンな組織の不正検知
fkubota
0
2.2k
JupyterNotebookでのdebug入門(サンプルは説明欄にあります)
fkubota
6
13k
ルールベース画像処理のススメ
fkubota
17
16k
Kaggle日記について
fkubota
2
2.6k
MoAコンペで気づいたこと
fkubota
1
770
鳥コンペで惨敗した話とコンペの取り組み方
fkubota
1
6.8k
生産性と戦った僕の1年の記録とツールたち
fkubota
6
6.7k
Other Decks in Programming
See All in Programming
Blazing Fast UI Development with Compose Hot Reload (droidcon London 2025)
zsmb
0
500
Web エンジニアが JavaScript で AI Agent を作る / JSConf JP 2025 sponsor session
izumin5210
3
1k
JEP 496 と JEP 497 から学ぶ耐量子計算機暗号入門 / Learning Post-Quantum Crypto Basics from JEP 496 & 497
mackey0225
2
210
Eloquentを使ってどこまでコードの治安を保てるのか?を新人が考察してみた
itokoh0405
0
3.1k
Java_プロセスのメモリ監視の落とし穴_NMT_で見抜けない_glibc_キャッシュ問題_.pdf
ntt_dsol_java
0
140
アーキテクチャと考える迷子にならない開発者テスト
irof
7
2.4k
AI 時代だからこそ抑えたい「価値のある」PHP ユニットテストを書く技術 #phpconfuk / phpcon-fukuoka-2025
shogogg
1
420
FlutterKaigi 2025 システム裏側
yumnumm
0
860
The Missing Link in Angular's Signal Story: Resource API and httpResource
manfredsteyer
PRO
0
110
組織もソフトウェアも難しく考えない、もっとシンプルな考え方で設計する #phpconfuk
o0h
PRO
10
4.1k
PHPライセンス変更の議論を通じて学ぶOSSライセンスの基礎
matsuo_atsushi
0
140
퇴근 후 1억이 거래되는 서비스 만들기 | 내가 AI를 사용하는 방법
maryang
2
550
Featured
See All Featured
Optimizing for Happiness
mojombo
379
70k
How to Think Like a Performance Engineer
csswizardry
28
2.3k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
140
34k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
22k
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
132
19k
A Tale of Four Properties
chriscoyier
162
23k
Documentation Writing (for coders)
carmenintech
76
5.1k
Making the Leap to Tech Lead
cromwellryan
135
9.6k
Thoughts on Productivity
jonyablonski
73
4.9k
Build your cross-platform service in a week with App Engine
jlugia
234
18k
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