2012-06-18 2 views
5

AMR-NB 파일에서 샘플 속도, 비트 전송률 등과 같은 정보를 어떻게 추출 할 수 있습니까? 엄밀히 말하면 샘플 속도 또는 피치 나 템포를 변경할 수있는 다른 데이터가 필요합니다. amr 오디오 파일 데이터를 읽고 수정하는 방법은 무엇입니까?

그것은 WAV 파일을 쉽게했지만, 나는 여기 ...

내가 구글에 많이 검색 한하지만 아무것도 얻을 수 없다 AMR-NB 형식 (J2ME 장치)로 제한하고

AMR-NB는 8Khz로 고정되어 있습니까? 또는 각 샘플마다 다릅니다.

답변

2

AMR 파일 형식은 다음과 같습니다. http://developer.nokia.com/community/wiki/AMR_format AMR 파일에는 6 바이트 헤더가 있고 그 뒤에 오디오 프레임 집합이 있고 각 헤더에는 1 바이트 헤더가 있습니다. 각 오디오 프레임은 20ms 길이이며 샘플 속도는 각 프레임의 헤더에 제공됩니다. 따라서 첫 번째 프레임의 샘플 속도를 읽으려면 파일의 7 번째 바이트를 읽어야합니다. 7 번째 바이트를 가져 와서 오른쪽으로 3 비트 이동하고 새 값의 하위 4 비트를 마스크 아웃합니다. 자바에서는 "((value >> 3) & 0x0F)"값은 프레임의 1 바이트 헤더입니다. 그런 다음 해당 숫자를 확인하여 해당 프레임의 비트 전송률을 확인하십시오. 각 프레임은 20ms 길이이기 때문에 비트율을 곱해야합니다 (kb/s로 주어서 초당 비트 수를 1000으로 곱한 값을 20으로 나눕니다). 그리고 ((8 비트/바이트) * 1000ms/두 번째) = 8000 다음 프레임 헤더 건너 뛸 바이트 수를 가져옵니다. 프레임의 내용을 수정하려면 순차적으로 프레임을 새 파일로 다시 복사하고 새 프레임을 이전 파일로 바꿉니다. 임시 파일이 이것에 좋습니다. 참조 용으로 원본 페이지의 비트 전송률 표를 복사했습니다.

0 - AMR 4.75은 - S/4.75kbit에서 인코딩

1 - AMR 5.15 - S/5.15kbit에서 인코딩

2 - AMR 5.9 - 5.9kbit/s

3에서 인코딩 - AMR 6.7 - S/6.7kbit에서 인코딩

4 - AMR 7.4 - S/7.4kbit에서 인코딩

5 - AMR 7.95 - 7.95kbit/s로 인코딩

01,235,

6 - AMR 10.2 - AMR 12.2 - - 10.2kbit/s

7에서 인코딩시 인코딩 12.2kbit/s

관련 문제