2013-02-18 19 views

답변

1

샘플 속도는 AmrInputStream.java에 하드 코딩되어 있습니다.

// frame is 20 msec at 8.000 khz 
private final static int SAMPLES_PER_FRAME = 8000 * 20/1000; 

그래서 PCM을 먼저 AMR로 변환해야합니다.

InputStream inStream; 
inStream = new FileInputStream(wavFilename); 
AmrInputStream aStream = new AmrInputStream(inStream); 

File file = new File(amrFilename);   
file.createNewFile(); 
OutputStream out = new FileOutputStream(file); 

//adding tag #!AMR\n 
out.write(0x23); 
out.write(0x21); 
out.write(0x41); 
out.write(0x4D); 
out.write(0x52); 
out.write(0x0A);  

byte[] x = new byte[1024]; 
int len; 
while ((len=aStream.read(x)) > 0) { 
    out.write(x,0,len); 
} 

out.close(); 

다운 샘플링의 경우 the Mary API을 시도 할 수 있습니다.

+0

, 내가 뭘 원하는 AMR로 변환하기 전에 PCM을 다운 샘플링 인에 의해 사용될 수도있다. –

+0

오디오 파일을 다운 샘플링하기위한 [mary api] (http://elckerlyc.ewi.utwente.nl/browser/Elckerlyc/Shared/repository/MARYTTS/java/marytts/util/data/audio/AudioConverterUtils.java)를 찾으십시오. – StarPinkER

+0

이 api는 android에서 실행되지 않습니다. : –