원래는 .SPH 형식의 오디오 파일을 사용하여 신경망을 학습하려고합니다. 신경망에 대한 음파의 진폭을 나타내는 정수를 얻으려고 sox를 사용하여 sox infile.SPH outfile.wav remix 1-2
(2 개의 채널을 1로 변환하기위한 리믹스)을 호출하여 파일을 .wav 형식으로 변환 한 다음 [y, Fs, nbits, opts] = wavread('outfile.wav')
을 사용하려고했습니다. 정수 표현을 얻기 위해 matlab..SPH 오디오 파일의 정수 표현 얻기
그러나, MATLAB은 Data compression format (CCITT mu-law) is not supported.
그래서 내가이 뮤 법 대신 선형 형식으로 웨이브 파일을두고 생각 하는 sox infile.SPH -b 16 -e signed-integer -c 1 outfile.wav
을 사용 던졌다. 하지만 지금은 matlab에 또 다른 오류가 발생했습니다 : Invalid Wave File. Reason: Cannot open file.
내 오디오 파일은 8000Hz의 u-law 싱글 또는 듀얼 채널이며, 모두 8 비트로되어 있습니다 (단 하나만을위한 8 비트).
matlab 또는 다른 프로그램을 사용하여 오디오 파일에서 정수 표현을 얻는 방법이 있습니까? u-law 또는 linear 중 하나는 신경망 훈련에 더 좋지 않으면 괜찮습니다. 소스 파일이 8 비트이므로 바람직하게는 8 비트입니다.
정말 이해하지 못합니다 .SPH. 압축되지 않은 파일 (헤더를 무시)의 경우 파일에 진폭이 저장되어 있습니까? 웨이브로 문제없이 직접 파일에서 번호를 추출 할 수 있습니까? 오디오 파일을 분할하는 것이 합리적 일 수 있도록 신호가 순차적으로 저장되어 있습니까?
저는 오디오 프로세싱이 처음이므로 새로운 포인터를 사용해 주시면 감사하겠습니다.
답장을 보내 주셔서 감사합니다. 죄송합니다. 원래 게시물 (이 사실을 반영하여 편집 됨)에는 명확하지 않지만 sox를 사용하여 파일을 .wav 형식으로 변환했습니다. 이제 wav 파일에서 "정수"를 추출하려고합니다. 내가 아는 유일한 방법은 matlab에로드하는 것이지만, waveread 함수를 사용할 때 위에서 언급 한 오류가 발생했습니다. (실제로 자바 대신 matlab에 훈련을하고 있습니다.) matlab 대신 sox를 사용하여 "정수"를 얻을 수있는 방법이 있습니까? 감사! –
sox in.wav out.dat (.dat에 "숫자"포함) – marsei