안녕하세요.
안드로이드에서 오디오를 수신하기 위해서 음성이라는 아날로그 신호를 디지털 신호로 변환하여, 원하는 포맷에 맞게 음성 파일을 만듭니다.
안드로이드는 오디오를 수신하기 위한 API를 2개 제공합니다.
위 API를 사용하기 위한 내용은 공식문서에도 잘 나왔으니, 어떻게 오디오가 수신되어지고 디지털 신호로 변환되어 음성 파일을 만들게 되는 지 그 과정에 대해서 알아보려고 합니다.
우선, PCM에 대해서 알아봐야 합니다.
PCM은 무엇인가?
PCM은 Pulse-code modulation, 펄스 코드 변조입니다. 아날로그 신호를 디지털 신호로 변환하는 과정을 PCM이라고 하며, 디지털 신호로 변환된 결과물을 PCM 데이터라고 합니다. (PCM 데이터를 PCM이라고도 부른다고 하네요. 저는 헷갈려서 과정은 PCM, 결과는 PCM 데이터라고 부르려고 합니다.)
PCM은 아날로그 신호를 디지털 신호로 변환한다고 했습니다.
전화는 음성 파형을 전기적 파형으로 변환하여 상대방에게 정보를 전송하는 것이다. 전화망은 원래 아날로그 망으로 개발되었다. 그러나 아날로그 형태로 정보를 전송하면 전송로를 통과할 때 왜곡되거나 전송 도중에 잡음이 섞여 파형이 흩어져 통신 품질이 좋지 않다. 인간의 목소리는 높고 낮음과 진폭의 크고 작은 요소를 가지고 있는데, 이와 같은 고저 강약을 부호로 바꾸어 전송하면 잡음에 강하고 다중화가 쉬워 경제적인 전송을 할 수 있다. 그렇기 때문에 아날로그 정보를 디지털로 바꾸게 되었다.
전화는 음성 파형을 전기적 파형으로 변환해서 상대방에 정보를 전송하는 방식입니다.
전화망은 원래 아날로그 망으로 개발되었다고 합니다. 그런데, 아날로그 형태로 전송하면 왜곡, 잡음이 섞여 통신 품질이 좋지 않았다고 합니다. 인간의 목소리는 높고 낮음이 존재(즉, 진폭의 크고 작은 요소)하는데, 이를 고저 강약 부호로 바꾸어 전송하면 잡음에 강하고 다중화가 쉬워 경제적인 전송을 할 수 있기에 아날로그 정보를 디지털 정보로 변환하게 되었다고 합니다! ☺️
