๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ199

[TarsosDSP] Real-time Pitch Detection ํ˜„์žฌ ์ง„ํ–‰ํ•˜๊ณ  ์žˆ๋Š” ํ”„๋กœ์ ํŠธ์˜ ๋ฉ”์ธ ๊ธฐ๋Šฅ์€ ๋‘ ๊ฐ€์ง€์ด๋‹ค. 1) ์‚ฌ์šฉ์ž์˜ ์Œ์„ฑ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›์•„ ์‹ค์‹œ๊ฐ„์œผ๋กœ ๊ฐ ์Œ์˜ pitch๋ฅผ detectํ•˜๊ณ  ์ด๋ฅผ note๋กœ ๋ฐ”๊พธ์–ด์ฃผ๋Š” ๊ธฐ๋Šฅ 2) ์‚ฌ์šฉ์ž์—๊ฒŒ ์•Œ๋งž์€ key์— ๋งž์ถ”์–ด ๊ธฐ์กด ์Œ์› ๋ฐ์ดํ„ฐ์˜ pitch๋ฅผ shiftํ•ด์ฃผ๋Š” ๊ธฐ๋Šฅ ์ด๋ฒˆ ํฌ์ŠคํŒ…์—์„œ๋Š” ์ฒซ ๋ฒˆ์งธ ๊ธฐ๋Šฅ์„ ํ…Œ์ŠคํŠธํ•˜๋Š” ๊ณผ์ •์„ ๋‹ค๋ฃจ๋ ค๊ณ  ํ•œ๋‹ค. Library ์„ ์ • pitch detection ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ : Praat(+Parselmouth), aubio, librosa pitch detection ์•Œ๊ณ ๋ฆฌ์ฆ˜(JS) : PitchDetect ๋”ฅ๋Ÿฌ๋‹ ๋ชจ๋ธ : SPICE(tensorflow) ๋Œ€๋žต 2๋‹ฌ ๋™์•ˆ ์‹ค์‹œ๊ฐ„ pitch dectection / pitch shifting์„ ์ง€์›ํ•˜๋ฉด์„œ ์˜คํ”ˆ ์†Œ์Šค์ธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ฐพ์•„๋ณด์•˜์ง€๋งŒ,.. 2021. 11. 19.
[Chap 3] ์ฝ”ํ‹€๋ฆฐ ์‹œ์ž‘ํ•˜๊ธฐ ์ฝ”ํ‹€๋ฆฐ ์–ธ์–ด ์†Œ๊ฐœ ์ฝ”ํ‹€๋ฆฐ์˜ ๋“ฑ์žฅ ๋ฐฐ๊ฒฝ - ์ฝ”ํ‹€๋ฆฐ์ด๋ž€? JetBrains์—์„œ ์˜คํ”ˆ ์†Œ์Šค ๊ทธ๋ฃน์„ ๋งŒ๋“ค์–ด ๊ฐœ๋ฐœํ•œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด. - ์ž๋ฐ”์˜ ๊ฐ€์ƒ๋จธ์‹ ์ธ JVM์— ๊ธฐ๋ฐ˜์„ ๋‘” ์–ธ์–ด. ์ฝ”ํ‹€๋ฆฐ์˜ ์žฅ์  1) ํ‘œํ˜„๋ ฅ๊ณผ ๊ฐ„๊ฒฐํ•จ(expressive and concise) : ์ž๋ฐ”๋ณด๋‹ค ๊ฐ„๊ฒฐํ•œ ๊ตฌ๋ฌธ 2) ์•ˆ์ „ํ•œ ์ฝ”๋“œ(safer code) : ์ฝ”ํ‹€๋ฆฐ์€ Null safety๋ฅผ ์ง€์› -> ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋žจ์—์„œ ๊ฐ์ฒด๋Š” ๋„ ์ƒํƒœ์ผ ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ด ๋•Œ NullPointerException์ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ ์ฝ”ํ‹€๋ฆฐ์—์„œ๋Š” ๋ณ€์ˆ˜๋ฅผ nullable๊ณผ not null๋กœ ๊ตฌ๋ถ„ํ•ด์„œ ์„ ์–ธํ•˜๊ธฐ ๋•Œ๋ฌธ์— null๊ณผ ๊ด€๋ จ๋œ ์—ฌ๋Ÿฌ ๋ถ€๋ถ„์„ ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ํ•ด๊ฒฐ 3) ์ƒํ˜ธ ์šด์šฉ์„ฑ(interoperable) : ์ฝ”ํ‹€๋ฆฐ์€ ์ž๋ฐ”์™€ 100% ํ˜ธํ™˜. ์ž๋ฐ”์™€ ์ฝ”ํ‹€๋ฆฐ ํ˜ผ์šฉ ๊ฐ€๋Šฅ .. 2021. 11. 19.
[Chap 2] ์•ˆ๋“œ๋กœ์ด๋“œ ์•ฑ์˜ ๊ธฐ๋ณธ ๊ตฌ์กฐ ์•ˆ๋“œ๋กœ์ด๋“œ ์†Œ๊ฐœ โœจ์•ˆ๋“œ๋กœ์ด๋“œ : ๋ฆฌ๋ˆ…์Šค ์ปค๋„์„ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ตฌ๊ธ€์—์„œ ์ œ์ž‘ํ•œ ๋ชจ๋ฐ”์ผ ์šด์˜์ฒด์ œ 1. ์•ˆ๋“œ๋กœ์ด๋“œ ์šด์˜์ฒด์ œ์˜ ๊ตฌ์กฐ 1) ๋ฆฌ๋ˆ…์Šค ์ปค๋„(Linux kernel) : ์•ˆ๋“œ๋กœ์ด๋“œ๋Š” ๋ฆฌ๋ˆ…์Šค ๊ธฐ๋ฐ˜ ์˜คํ”ˆ์†Œ์Šค ์†Œํ”„ํŠธ์›จ์–ด ์Šคํƒ์ž„ 2) ํ•˜๋“œ์›จ์–ด ์ถ”์ƒํ™” ๋ ˆ์ด์–ด(hardware abstraction layer, HAL) : ํ•˜๋“œ์›จ์–ด์˜ ์ถ”์ƒํ™” ๊ณ„์ธต์œผ๋กœ, ์ƒ์œ„์˜ ์ž๋ฐ” API ํ”„๋ ˆ์ž„์›Œํฌ์—์„œ ํ•˜๋“œ์›จ์–ด ๊ธฐ๋Šฅ์„ ์ด์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ‘œ์ค€ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ œ๊ณต 3) ์•ˆ๋“œ๋กœ์ด๋“œ ๋Ÿฐํƒ€์ž„(Android runtime) : ART๋ผ๊ณ  ํ•˜๋ฉฐ, ์•ฑ์„ ์‹คํ–‰ํ•˜๋Š” ์—ญํ•  ์•ˆ๋“œ๋กœ์ด๋“œ๋Š” ์ž๋ฐ” ํด๋ž˜์Šค๋ฅผ ๋Ÿฐํƒ€์ž„ ๋•Œ ๊ทธ๋Œ€๋กœ ์‹คํ–‰ํ•˜์ง€ ์•Š๊ณ  DEX ํŒŒ์ผ๋กœ ์ปดํŒŒ์ผํ•œ ํ›„, ART์—์„œ ์‹คํ–‰ํ•œ๋‹ค. 4) ๋„ค์ดํ‹ฐ๋ธŒ C/C++ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ : ์ž๋ฐ” ํ”„๋ ˆ์ž„์›Œํฌ ์ด์™ธ์—๋„ ๋„ค์ดํ‹ฐ๋ธŒ C/C+.. 2021. 11. 17.
[Chap 1] ์•ˆ๋“œ๋กœ์ด๋“œ ์ŠคํŠœ๋””์˜ค ์„ค์น˜ ๊ณผ์ •์—์„œ ์ฃผ์ ˆ์ฃผ์ ˆ 1. ์•ˆ๋“œ๋กœ์ด๋“œ ์ŠคํŠœ๋””์˜ค๋Š” ์„ค์น˜ ๊ฒฝ๋กœ์— ํ•œ๊ธ€์ด๋‚˜ space๊ฐ€ ์žˆ์œผ๋ฉด ์•ˆ ๋œ๋‹ค. ๋‚˜๋Š” ์œ ์ €๋ช…์— space๊ฐ€ ๋“ค์–ด๊ฐ”๊ธฐ ๋•Œ๋ฌธ์— C ๋“œ๋ผ์ด๋ธŒ ๋ฐ”๋กœ ๋ฐ‘์— ํด๋”๋ฅผ ๋งŒ๋“ค์–ด์„œ ์„ค์น˜ํ–ˆ๋‹ค^^ 2. ์„ค์น˜๊ฐ€ ์™„๋ฃŒ๋˜๋ฉด ๊ธฐ๋ณธ์ ์œผ๋กœ C:/Program Files/Android ๋ฐ‘์— ํŒŒ์ผ์ด ์ƒ์„ฑ๋œ๋‹ค. ์ด์™ธ์—๋„ ์•„๋ž˜ ์œ„์น˜์— ํŒŒ์ผ์ด ์ƒ์„ฑ๋œ๋‹ค. 1) ์‚ฌ์šฉ์ž ํด๋”/.android 2) ์‚ฌ์šฉ์ž ํด๋”/(์ˆจ๊น€)Appdata/local/Android ๋งŒ์•ฝ ์•ˆ๋“œ๋กœ์ด๋“œ ์ŠคํŠœ๋””์˜ค๋ฅผ ์‚ญ์ œํ•˜๊ณ  ์žฌ์„ค์น˜ํ•ด์•ผ ํ•œ๋‹ค๋ฉด, ์œ„ 3๊ฐœ์˜ ํด๋”๋ฅผ ์‚ญ์ œํ•ด์•ผ ํ•œ๋‹ค! ํ˜„์žฌ๋Š” Intel system ํƒ€์ž…์œผ๋กœ ์„ ํƒํ•œ ์ƒํ™ฉ(intel x86)์ธ๋ฐ, ๋‚˜์ค‘์— ์—๋ฎฌ๋ ˆ์ดํ„ฐ(๊ฐ€์ƒ ๋‹จ๋ง)๋ฅผ ์„ค์น˜ํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด, BIOS๋ฅผ ๊ฑด๋“œ๋ ค์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ๋‹ค. BIOS๋Š” ํ•˜๋“œ์›จ์–ด์— ๋Œ€ํ•œ ์„ค์ •์ธ๋ฐ ๊ฑฐ๊ธฐ์—์„œ .. 2021. 11. 9.