2017-12-22 29 views
-1

NAudio 및 Adobe Media Encoder (별도)를 사용하여 2 시간짜리 MP3 파일을 WAV 파일로 변환합니다.WAV 파일이 소스 MP3 파일과 동기화되지 않았습니다.

MP3 초 # 996 = WAV 초 # 1000

MP3 초 # 1991 = WAV 초 # 2000

구글 :

결과 WAV 파일은 원본 MP3 파일과 동기화되지 않습니다 Speech API는 WAV 파일을 사용하여 시간 코드화 된 사본을 작성해야하지만 시간 코드는 MP3 파일 (Podcast)에 대해 정확하지 않습니다.

모든 Podcast에서 사용하는 소스 형식이므로 MP3 형식을 사용해야합니다.

원본 MP3 파일과 동기화 된 WAV 파일을 만들려면 어떻게해야합니까?

답변

0

어떻게 동기화되지 않는지 어떻게 알 수 있습니까? MP3를 재생하기위한 코덱과 WAV로 변환하기위한 코덱은 같은 것입니다. 또는 적어도 구현이 다르더라도 결정 론적으로 동일한 결과를 가져야합니다.

시간이 같지만 오디오를 미리 볼 때 MP3 파일을 찾고 있다고 생각합니다.

MP3 파일에는 타임 스탬프가 없습니다. 탐색 지점까지 먼저 디코딩하지 않고도 안정적으로 탐색 할 수 없습니다. 대부분의 플레이어는 파일의 바이트 길이와 첫 번째 몇 프레임을 기반으로 추정 된 전체 비트 전송률에 따라 파일에서 재생을 시작할 위치를 추정합니다. CBR의 경우 0.5 초 정도면 정확합니다. VBR의 경우 엄청난 양이 될 수 있습니다.

이것은 스트리밍 이외의 다른 이유로 원시 MP3가 나쁜 이유 중 하나입니다. MP3는이 문제를 해결하는 데 도움이되는 Matroska와 같은 다른 컨테이너 형식에서도 사용할 수 있습니다. 불행히도, podcasters는 이것을하지 않습니다.

기본적으로 문제의 실제 해결책은 없지만 청취자가 건너 뛰지 않고 실시간으로 팟 캐스트를 재생하면 문제가되지 않을 수도 있습니다.

+0

두 번째 # 1991에서 MP3 파일에서 발생하는 오디오가 두 번째 # 2000까지 WAV 파일에서 발생하지 않기 때문에 동기화 상태를 알 수 있습니다. 따라서 Google Speech API가 WAV 파일에서 생성 한 타임 스탬프는 Podcast의 MP3 파일과 정렬되지 않습니다. – Tester

+0

@Tester 어떻게하면 MP3 파일의 1,991 번째에 도착합니까? 오디오 플레이어를 사용하여 건너 뛰었습니까? 아니면 그 지점까지 계속 재생 했습니까? – Brad

+0

특정 시간부터 재생하려면 오디오 객체의 'currentTime'속성 (자바 스크립트)을 설정합니다. https://www.w3schools.com/tags/av_prop_currenttime.asp – Tester