음성 파일 크기를 알아보려고합니다,, 지금 qt언어로 마이크로 말하면 바로 들리는 소스에서 말한 음성을 저장하려고 하는데요,, 버퍼에 있는 음성 데이터를 어떤식으로 저장해야 하는지,, wave파일로 저장하려고 하는데요,, 그럼 추운데 수고하십시요~
Wav라면 거의 사실상 PCM이고 PCM의 크기는 샘플링레이트와 샘플크기와 채널수에 의해 결정됩니다. (BMP파일은 거의 사실상 raw bitmap이고, 파일 크기는 X해상도, Y해상도, bitdepth에 의해 결정되는 것과 똑같이 생각하시면 됩니다.)
CD의 예를 들어보자면 샘플링레이트가 44100Hz, 샘플크기가 16비트, 채널수는 스테레오입니다.
44100 x 16 x 2 == 1411200 1411200 / 8 == 176400
그러므로 1초당 1411200비트, 즉 176400바이트가 먹힙니다.
음성코딩을 위해 최소사양(?)인 8000Hz, 8bit, mono로 저장을 한다면
8000 x 8 x 1 == 64000 64000 / 8 == 8000
초당 8킬로바이트
좀 음질을 높여서 22050Hz, 16bit, mono로 저장을 한다면
22050 x 16 x 1 == 352800 352800 / 8 == 44100
초당 44.1킬로바이트
----
혹시 wav에 익숙치 않으시면 wav 포맷이나 RIFF헤더에 대해 검색해보세요. 모노파일이라면 샘플링레이트, 샘플크기, 채널 수 등등의 정보를 헤더에 기록하시고 PCM샘플을 little-endian으로 시간순으로 그냥 기록만 해주시면 wav 파일이 됩니다.
---
혹시 압축이 필요하신 경우라면 speex에 대해 알아보세요.
텍스트 포맷에 대한 자세한 정보
<code>
<blockcode>
<apache>
<applescript>
<autoconf>
<awk>
<bash>
<c>
<cpp>
<css>
<diff>
<drupal5>
<drupal6>
<gdb>
<html>
<html5>
<java>
<javascript>
<ldif>
<lua>
<make>
<mysql>
<perl>
<perl6>
<php>
<pgsql>
<proftpd>
<python>
<reg>
<spec>
<ruby>
<foo>
[foo]
Wav라면 거의 사실상 PCM이고 PCM의 크기는 샘플링레이트와 샘플크기
Wav라면 거의 사실상 PCM이고 PCM의 크기는 샘플링레이트와 샘플크기와 채널수에 의해 결정됩니다. (BMP파일은 거의 사실상 raw bitmap이고, 파일 크기는 X해상도, Y해상도, bitdepth에 의해 결정되는 것과 똑같이 생각하시면 됩니다.)
CD의 예를 들어보자면 샘플링레이트가 44100Hz, 샘플크기가 16비트, 채널수는 스테레오입니다.
44100 x 16 x 2 == 1411200
1411200 / 8 == 176400
그러므로 1초당 1411200비트, 즉 176400바이트가 먹힙니다.
음성코딩을 위해 최소사양(?)인 8000Hz, 8bit, mono로 저장을 한다면
8000 x 8 x 1 == 64000
64000 / 8 == 8000
초당 8킬로바이트
좀 음질을 높여서 22050Hz, 16bit, mono로 저장을 한다면
22050 x 16 x 1 == 352800
352800 / 8 == 44100
초당 44.1킬로바이트
----
혹시 wav에 익숙치 않으시면 wav 포맷이나 RIFF헤더에 대해 검색해보세요. 모노파일이라면 샘플링레이트, 샘플크기, 채널 수 등등의 정보를 헤더에 기록하시고 PCM샘플을 little-endian으로 시간순으로 그냥 기록만 해주시면 wav 파일이 됩니다.
---
혹시 압축이 필요하신 경우라면 speex에 대해 알아보세요.
댓글 달기