일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- Bidirectional Associative Memory
- 동아리
- 삼성
- 삼성전자 소프트웨어멤버십 SSM
- NarwalFreo
- 인공지능
- SSM
- Google App Engine
- Friendship
- 패턴 인식
- 물걸레자동세척로봇청소기
- 멤버십
- 나르왈프레오
- 고려대학교
- BAM
- 패턴인식
- 신경망
- 삼성소프트웨어멤버십
- Python
- 가상화
- Neural Network
- 갤럭시탭S8울트라
- hopfield network
- 파이썬
- 신경회로망
- 빅데이터
- 하이퍼바이저
- 증강현실
- 물걸레로봇청소기추천
- 구글 앱 엔진
- Today
- Total
정보공간_1
[2기 수원 이동욱] 소리의 이해 (1/2) 본문
< 소리의 이해 1 >
안녕하세요 수원멤버십에서 활동중인 21-1기 이동욱입니다.
요즘 멤버십을 둘러보면 미디어아트에 관심있어 하는 회원들을 많이 봤습니다.
미디어아트에 들어가는 요소에는 여러가지가 있겠지만 빼놓을 수 없는게 바로 사운드 일텐데요.
저는 '소리의 이해' 라는 주제로 포스팅을 해볼까 합니다.
1. 파동으로서의 소리
우리 주위에는 듣기좋은 음악소리, 시끄러운 도시소음들이 가득하죠.
중학교때 배웠듯이 음파는 "공기의 파동"으로 전달됩니다.
즉 전파와 마찬가지로 반사, 굴절, 회절, 간섭 등 '파동'으로써의 기본 성질을 갖고 있습니다.
그러므로 파장, 주파수, 진폭 등의 개념이 그대로 사용됩니다.
(단, 공기라는 매질이 필요하다는 점과, '횡파'가 아닌 '종파'라는 점이 전자파와 다르지만, 여기서는 중요하지 않습니다.)
'파동'으로서의 성질을 이용하면 다음과 같은 일들이 가능합니다.
1. 반사파를 모델링하면 공간감을 만들어낼 수 있습니다.
사람은 반사음을 이용하여 주변 공간의 크기를 어느정도 감지할 수 있습니다.
잘 만들어진 3D 게임은 동굴이나, 터널 속에서 나는 소리를 울리게 하여 더 현장감을 살립니다.
이러한 효과를 '리버브'라고 합니다.
2. 저주파로 신체를 진동시킬 수 있습니다.
파동은 낮은 주파수일 수록 투과성이 강하며, 반대로 높은 주파수일 수록 반사성이 강합니다.
옆 방에서 문을 닫은채로 음악을 틀면 쿵쿵 거리는 베이스드럼 소리만 들리는 이유는 이런 성질 때문입니다.
낮은 주파수의 소리는 인간의 신체도 충분히 투과할 수 있습니다.
2. 아날로그를 디지털로
그렇다면 컴퓨터는 소리를 어떻게 저장할까요?
컴퓨터에서 소리는 '공기압 세기' 데이터의 나열로써 저장됩니다.
여기서 공기압 세기는 파동에서 진폭에 해당하는 값이지요.
각각의 공기압 세기 데이터를 '샘플'이라고 합니다.
그런데, 공기압 세기만 저장된다면, 음의 높낮이는 어떻게 저장될까요?
의외로 따로 저장되지 않습니다.
샘플들의 나열에 의해 파동이 생기고, 주파수가 결정되기 때문에 따로 저장할 필요가 없는 것이지요.
이런 방법으로 아날로그 신호를 디지털로 변환하여 저장하는 것을 PCM(Pulse-code modulation) 이라고 합니다.
여기서 잠깐, 가청주파수라는 것이 있습니다. 인간이 들을 수 있는 소리의 주파수 범위를 가청주파수라고 합니다.
사람은 주파수가 너무 낮은 소리, 또는 너무 높은 소리는 들을 수가 없습니다. 박쥐나 돌고래들이 수다떠는 소리는 못 듣겠죠?
가청주파수는 사람마다 다르지만 보통 20Hz 에서 20kHz 까지라고 합니다. 꽤나 넓습니다.
자 다시 본론으로 들어가죠.
"44.1kHz, 16bit, Stereo"
이런 문구 많이 보셨나요? 이것이 오디오 CD 음질의 표준규격입니다.
이게 다 무슨 뜻일까요? 채널수를 의미하는 Stereo 는 다들 아시겠죠?
먼저 44.1kHz 는 샘플링주파수를 의미합니다. (샘플링레이트라고도 합니다.)
샘플링주파수는 소리의 주파수를 의미하는 것이 아닙니다.
말 그대로 초당 "샘플링"을 한 횟수, 쉽게 말해 1초안에 녹음을 한 횟수를 나타냅니다.
샘플링주파수가 높다면 1초에 해당하는 부분의 데이터(샘플들)가 더 많아지고, 더 빨리 스트리밍을 해야겠죠.
중요한건 샘플링주파수가 높을수록 당연히 더 정교한 소리를 낼 수 있겠지요.
20kHz의 고음을 녹음하려면 나이퀴스트 이론에 의해 최소한 두배인 40kHz 의 샘플링주파수로 녹음해야 합니다.
샘플링주파수가 낮으면, 데이터량은 줄겠지만, 고주파, 즉 날카로운 음을 제대로 표현할 수가 없습니다.
라디오로 음악을 들을때 심벌즈 소리 또는 'ㅅ' 'ㅊ' 을 발음할 때 소리가 뭉개지는 이유가 이 때문입니다.
반면, CD음질인 44.1kHz 는 최대 22.05kHz 주파수의 음을 저장할 수 있습니다. 인간의 가청주파수를 커버하고도 조금 남는 양입니다.
그래서 44.1kHz가 표준으로 정해진 것이지요.
(하지만 여기엔 불만을 가지는 사람들이 많이 있습니다. 들을 순 없어도 느낄 수 있다고 주장하는 사람들이 많이 있기 때문입니다.)
자 그럼 16bit 는 무엇을 의미할까요?
이는 샘플당 비트수, 즉 샘플 하나의 데이터 크기를 의미합니다.
앞서 말했듯이, 각 샘플은 '공기압 세기' 데이터를 의미하는데요.
이 세기를 얼마나 세분화시켜서 표현할 것인가 하는것이 이 비트수 입니다.
즉 0부터 2의 16승까지의 범위로 세기를 표현하겠다는 뜻이지요.
이 값도 당연히 높을 수록 세기가 더 다양해지고, 더 사실적인 소리를 표현할 수 있습니다.
그러면 44.1kHz, 16bit, Stereo 에서 1초에 해당하는 부분은 몇 byte일까요?
1초에 44100번의 샘플링을 하였는데, 스테레오니까 두배를 해줘야겠죠.
즉 44100 * 2 * 16 / 8 = 176,400 byte 입니다. (바이트레이트라고 합니다.)
3. WAV 포맷
그러면 실제로 .wav 파일에는 어떻게 소리가 저장되어 있는지 간단히 살펴보겠습니다.
윈도우에서 많이 사용하는 .wav 포맷은 가장 단순한 오디오 포맷입니다.
앞서 설명한 PCM 방법으로 소리를 저장하며, 압축과정을 거치지 않은 포맷이죠.
(mp3 와 같은 포맷은 압축과정을 거쳐 데이터량을 줄인 것입니다.)
그림은 wav 포맷의 구조입니다. RIFF(Resource Interchange File Format)라고 하는 파일포멧을 따르기 때문에
Chunk 라는 개념으로 데이터가 표현되어 있습니다. RIFF에 대한 자세한 설명은 여기서 하지 않겠습니다.
wav 파일은 두 개의 SubChunk로 구성되는데,
첫번째 Chunk에 재생에 필요한 정보가 들어가고, 두번째 Chunk에 본격적인 PCM 소리데이터가 저장됩니다.
첫번째 부분이 없다면, 컴퓨터는 소리데이터를 어떻게 재생해야 할 지 알 수 없게 되겠지요.
그림에서는 44.1kHz, 16bit, Stereo 의 경우에 해당하는 주요 값들을 표시하였습니다.
그러면 Data 부분은 어떻게 저장되어 있을까요?
Data 영역에는 여러분이 예상하신대로 각 샘플데이터들이 순서대로 나열되어 있습니다.
스테레오 채널인 경우에는 좌,우가 번갈아가며 나열됩니다.
그림은 16bit, Stereo 의 경우 입니다. 만약 8bit, Mono 라면 당연히 1byte 씩 순서대로 나열되겠지요.
4. 마치며
지금까지 소리의 성질과 컴퓨터에서는 소리를 어떻게 저장하는지 간단히 알아보았습니다.
비록 기초적인 지식이지만, 사운드를 이해함에 있어서 조금이나마 도움이 되었으면 좋겠네요.
기회가 된다면 다음달에는 소리와 주파수의 관계에 대해서 간단히 알아보겠습니다.
즐거운 하루 되세요!
'IT 놀이터 > Elite Member Tech & Talk' 카테고리의 다른 글
[2기 수원 곽지혜] Google Android Hackathon 2012 참가후기 (0) | 2012.08.22 |
---|---|
[2기 대전 김형순] Boston Dynamics ‘BigDog’ (0) | 2012.08.21 |
[2기 신촌 김태호] 2012 Google I/O를 다녀오다! (0) | 2012.08.20 |
[2기 대구 이현복] Data Structure - Array (0) | 2012.08.20 |
[2기 전주 박준형] Parallel Processing (0) | 2012.08.20 |