2013-07-24 5 views
2

원래는 .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 비트).

  1. matlab 또는 다른 프로그램을 사용하여 오디오 파일에서 정수 표현을 얻는 방법이 있습니까? u-law 또는 linear 중 하나는 신경망 훈련에 더 좋지 않으면 괜찮습니다. 소스 파일이 8 비트이므로 바람직하게는 8 비트입니다.

  2. 정말 이해하지 못합니다 .SPH. 압축되지 않은 파일 (헤더를 무시)의 경우 파일에 진폭이 저장되어 있습니까? 웨이브로 문제없이 직접 파일에서 번호를 추출 할 수 있습니까? 오디오 파일을 분할하는 것이 합리적 일 수 있도록 신호가 순차적으로 저장되어 있습니까?

저는 오디오 프로세싱이 처음이므로 새로운 포인터를 사용해 주시면 감사하겠습니다.

답변

0

주 작업을 명확하게 식별해야합니다. 신경망에 벡터 또는 행렬을 입력해야합니다. 그래서 첫 번째 단계는 wav 파일을 갖기 위해 오디오 파일 (matlab없이!)에서 작업하는 것입니다. 두 번째 단계는 신경망 설정/matlab에 교육입니다.

'sph'파일의 압축을 풀고 'wav'로 변환하려고합니다 (예 : herehere의 지침 참조).

마지막으로 명령 줄/터미널 창에서 sox를 ​​사용하는 것이 matlab 콘솔에서 사용하는 것보다 낫습니다.

+0

답장을 보내 주셔서 감사합니다. 죄송합니다. 원래 게시물 (이 사실을 반영하여 편집 됨)에는 명확하지 않지만 sox를 ​​사용하여 파일을 .wav 형식으로 변환했습니다. 이제 wav 파일에서 "정수"를 추출하려고합니다. 내가 아는 유일한 방법은 matlab에로드하는 것이지만, waveread 함수를 사용할 때 위에서 언급 한 오류가 발생했습니다. (실제로 자바 대신 matlab에 훈련을하고 있습니다.) matlab 대신 sox를 ​​사용하여 "정수"를 얻을 수있는 방법이 있습니까? 감사! –

+0

sox in.wav out.dat (.dat에 "숫자"포함) – marsei