2014-06-21 3 views
0

2 개의 샘플 wav 파일이 있습니다.기존 오디오 파일을 결합하여 새 오디오 파일을 생성하십시오.

I는 다음과 같이 하나의 출력 WAV로 결합하고 싶습니다 :

먼저 WAV 재생, x 초는 2 WAV를 재생 기다린 새로운 wav 파일로 결과를 저장합니다.

나는 특히 wav 형식에 붙어 있지 않기 때문에 필요한 경우 다른 형식을 사용하여 기쁘게 생각합니다.

필자의 연구 결과에 따르면 wav를 PCM으로 변환 한 다음 새로운 출력 버퍼를 만들고 출력 버퍼의 첫 번째 파일을 작성해야 할 것으로 보인다. 그럼 어떻게 든 x 초 동안 공간을 만들고 두 번째 PCM을 쓰십시오.

어떻게하면됩니까? 당신은 당신이 무슨 말을 알아 보았해야합니다 모든

답변

1

첫째 대한

WAVPCM으로 음파를 인코딩 RIFF의 유형입니다. 본질적 PCM

웨이브의 이산 값이 소정 sample rate (전형적으로 44 kHz의)

각 샘플은 하나 이상의 채널들에 대해 (전형적 2)

를 정보를 포함 할 수있다에 저장되는 것을 의미 각 샘플의 값은 고정 된 크기 정수 또는 부동 소수점으로 저장됩니다. (일반적으로 16 비트 정수는)

이러한 속성은 두 파일의 헤더를 읽을 필요가 당신이 운이 좋다면 그들은 같은 ByteRate이 두 가지 별도의 WAV 파일을 결합하려면 WAVheader

에 저장됩니다 (== samplerate * 채널 수 * bits/sample/8) 두 번째 파일에서 첫 번째 파일의 끝을 빼고 연결하고 두 번째 파일의 길이를 첫 번째 파일의 길이 필드에 추가하기 만하면됩니다.

다른 경우에는 어떤 종류의 재 인코딩을 수행하는 library을 사용하는 것이 좋습니다.

시간과 즐거움이 있다면 스스로 녹음 할 수 있습니다.

이 자료를 전혀 신경 쓰지 않으려면 필요한 것을 수행하는 완전한 프로그램 (i.E. sox)을 사용하십시오.

Btw : 샘플 당이 비트가 부호있는 경우 침묵은 0 값이고 서명되지 않은 경우 최대 값의 절반 (일반적으로 8 비트 정수에서만 발견됨)입니다. 그래서

는 N =이 필요 침묵의 4 초를 얻을 수 4 * 샘플 레이트 * 채널 NUM 개의 * (비트/초)/8 시간 0

퀴즈 : 당신은 어떤 상수 값을 사용하는 대신에 0 수 침묵

+0

당신의 설명에 감사드립니다,이 물건은 모두 나에게 아주 새로운 것입니다. 네, 저는 도서관을 연구 중이며 NAudio 라이브러리를 사용해 볼 것이라고 생각합니다. – iKode

관련 문제