2011-11-05 2 views
0

각각 약 1 초간 지속되는 웨이브 파일이 있습니다. C#을 사용하여 정확히 5 초 간격으로 하나의 큰 파일에 연결하려고합니다. 이렇게하면 큰 파일을 사운드 편집기에 넣지 않아도되고 각 단어의 시작 시간을 기록하지 않아도됩니다.5 초 간격으로 웨이브 파일 연결하기

NAudio 및 WaveFileWriter.write를 사용하여 파일을 연결하는 방법을 알고 있습니다. 일정 시간 동안 묵음을 삽입하거나 실제로 파일의 특정 지점에 하나의 파일을 추가하는 방법이 있습니까? 내가 쓰고있는 파일이 11 초 길이라는 상황이 있고 15 초에 다음 파일을 쓰고 싶을 것입니다.

일을 더 쉽게 만들려면 먼저 mp3로 변환해야합니다. 사실, 큰 웨이브 파일은 궁극적으로 mp3로 변환 될 것입니다. 나는 그것이 더 합리적인 것이라면 다른 도구에 대해서도 열려 있습니다. 당신의 도움에 대한

많은 감사,

+0

많은 감사를 귀하의 의견을. 나는 @ Mithon의 두 번째 제안에 따라 각 사운드에 대해 5 초의 침묵을 만들어 사운드로 덮어 쓰고 파일을 작성했다. 개별 파일은 완벽하게 작동했지만 연결하려고 시도 할 때 새 파일이 호환되지 않는 사운드 형식이라는 오류가 발생했습니다. 그래서 시간을 절약하기 위해 GoldView를 사용하여 5 초짜리 파일을 하나의 큰 파일로 병합했습니다. 내가 왜 큰 파일이 연결된 파일과 같은 형식을 사용하도록 설정했기 때문에 오류가 있었는지 모르겠습니다. –

답변

1

당신은 당신이 당신은 당신이 그 다음 여러에 도달해야 어떤 침묵의 바이트 수를 기록 할 수

int bytesPerMillisecond = reader.WaveFormat.AverageBytesPerSecond/1000; 

를 작성할 필요가 얼마나 많은 침묵의 바이트 파악 독자에 액세스 할 수 있습니다 5 초. 인공 소리가 나는 소리가 전혀 들리지 않을지라도 모든 제로를 쓸 수 있다고 가정합니다.

더 나은 해결책은 5s 웨이브의 무음을 만들고 그 섹션에서 복사하는 것입니다. 웨이브의 특정 길이를 작성하는 방법이 좋은 예를 참조하십시오

http://mark-dot-net.blogspot.com/2009/09/trimming-wav-file-using-naudio.html

0

내가 제대로 질문을 이해하지 않을 수 있습니다,하지만 난 할 경우이 당신을 위해 작동 할 수 있습니다. 어떤 사운드 레코더를 사용하여 원하는 길이 (1 초, 1/2 초)의 주식 "무성 파일"을 녹음 할 수 있어야합니다. 그런 다음 NAudio를 사용하여 단어 사이에 원하는 묵음 양을 제공하는 데 필요한만큼 사본을 연결할 수 있습니다. 즉, 1/2 초의 침묵이 있다고 가정 해보십시오. 단어 1과 단어 2 사이의 완전한 1 초 동안 word1.wav + silence.wav + silence.wav + word2.wav를 만들 수 있습니다. 자동 파일의 길이는 단어 사이에 필요한 정도에 따라 달라지며이 자동 파일을 응용 프로그램과 함께 배포해야합니다. NAudio 프레임 워크를 사용하는 경우

관련 문제