Profile

Seok J (http://facebook.com/junn279)

 

Medical Doctor

Otorhinolaryngologist (ENT), 전문의

육군 대위, 군의관

 

Computer Science

앞서가지 못해도 뒤쳐지지는 말자

Ph.D. student in Biomedical Engineering, Seoul Nat’l Univ. (석박사통합과정) – 휴학 중

ObjectC/C++/C#/Java

ython/R/Matlab/Deep Learning

Clinical application of smart devices

Sun Certificated JAVA Programmer 6.0 (2009)

 

Language

혼자 여행다닐 수 있을 정도의 영어 (Pitiful English)

남미에서 굶어죽지 않을 정도의 스페인어  (Miserable Spanish)

 

Publication

https://scholar.google.co.kr/citations?user=8Cf2m8EAAAAJ&hl=ko

 

2 thoughts on “Profile”

  1. 안녕하세요.
    안드로이드 초보개발자인데요.
    귀하의 SimpleLame 을 이용한 mp3 레코딩 포스트를 보고
    이렇게 도움을 요청하게 되었습니다.

    제가 구현하고자 하는 것은
    m4a 파일을 읽어 들여서 SimpleLame으로 인코딩하여
    mp3 파일로 저장하려고 합니다.
    제가 테스트해 본 코드는 다음과 같습니다.

    private void convertM4a2Mp3File(String m4aFullName) throws IOException {
    int buffSize = AudioRecord.getMinBufferSize(32000, AudioFormat.CHANNEL_IN_MONO, AudioFormat.ENCODING_PCM_16BIT);

    SimpleLame.init(32000, 1, 32000, 32);

    String mp3FullName = m4aFullName.replace(“.m4a”, “.mp3”);
    presentFile = mp3FullName;

    FileOutputStream mp3fileFo = new FileOutputStream(mp3FullName);

    FileInputStream m4afileFi = new FileInputStream(m4aFullName);
    //ByteArrayOutputStream baos = new ByteArrayOutputStream();

    byte[] b = new byte[buffSize];
    short[] buffer = new short[buffSize];
    byte[] mp3buffer = new byte[(int) (7200 + buffSize * 2 * 1.25)];

    int encResult = 0;
    for (int readNum; (readNum = m4afileFi.read(b)) != -1;) {
    //baos.write(b, 0, readNum);
    encResult = SimpleLame.encode(buffer, buffer, readNum, mp3buffer);
    mp3fileFo.write(mp3buffer, 0, encResult);
    }

    //close file /
    if (presentFile.equals(“”)) presentFile = getFileName();
    m4afileFi.close();
    //baos.close();
    mp3fileFo.close();
    }

    이렇게 한 결과는
    일단 결과물인 mp3 파일은 아무 소리가 나지 않네요.
    그리고 원본인 m4a 파일이 30초 길이면
    mp3 파일은 15초 길이가 되구요.

    어느 부분을 어떻게 수정해야하는지
    도와주시면 고맙겠습니다.

    안녕히 계십시오.

    1. 요새 블로그 관리를 잘 안하다보니 이제서야 확인하네요. 죄송합니다.
      일단 제가 mp3 관련된 작업을 안한지 너무 오래라 정확히 기억나지 않습니다만, 구글에서 안찾아진다면 저도 잘 모르겠습니다ㅠ
      다만 제가 올린 소스는 MONO channel 녹음기를 이용한 녹음이었기 때문에 버퍼사이즈가 다를 것 같습니다.
      1. int buffSize = AudioRecord.getMinBufferSize(32000, AudioFormat.CHANNEL_IN_MONO, AudioFormat.ENCODING_PCM_16BIT);
      2. byte[] mp3buffer = new byte[(int) (7200 + buffSize * 2 * 1.25)];

      일단 저 버퍼사이즈 세팅이 잘못된다면 재생시간에 문제가 생깁니다. 예를들면 10초짜리가 20초짜리 파일이 되어서 느리게들린다던지..
      부디 답을 찾으실 수 있으시길 바라겠습니다.

Leave a Reply

Your email address will not be published.

이비인후과 의사, 프로그래머, 여행, 음악과 미술