웹사이트 검색

과학적 오디오 처리, 1부 - Ubuntu에서 Octave 4.0.0으로 오디오 파일을 읽고 쓰는 방법


이 페이지에서

  1. 전제 조건
  2. 1단계: Octave 열기.
  3. 2단계: 오디오 정보
  4. 3단계: 오디오 파일 읽기
  5. 4단계: 오디오 파일 쓰기
    1. ogg 파일 만들기:

    Linux의 Matlab과 동등한 소프트웨어인 Octave에는 엔터테인먼트 애플리케이션, 연구, 의료 또는 기타 과학 분야를 위한 오디오 신호의 수집, 녹음, 재생 및 디지털 처리를 허용하는 다양한 기능과 명령이 있습니다. 이 튜토리얼에서는 Ubuntu의 Octave V4.0.0을 사용하고 다양한 활동에 사용되는 사운드를 에뮬레이트하기 위해 신호 쓰기 및 재생을 통해 오디오 파일에서 읽기를 시작합니다.

    이 튜토리얼의 주요 초점은 이미 설치된 오디오 처리 소프트웨어를 설치하거나 사용법을 배우는 것이 아니라 디자인 및 오디오 엔지니어링의 관점에서 어떻게 작동하는지 이해하는 것입니다.

    전제 조건

    첫 번째 단계는 옥타브를 설치하는 것입니다. 터미널에서 다음 명령을 실행하여 Ubuntu에 Octave PPA를 추가하고 소프트웨어를 설치합니다.

    sudo apt-add-repository ppa:octave/stable
    sudo apt-get update
    sudo apt-get install octave

    1단계: 옥타브 열기.

    2단계: 오디오 정보


    "audioinfo" 명령은 처리할 오디오 파일에 대한 관련 정보를 보여줍니다.

    >> info = audioinfo ('testing.ogg')

    3단계: 오디오 파일 읽기


    이 튜토리얼에서는 샘플링, 오디오 유형(스테레오 또는 모노), 채널 수 등과 같은 특성을 읽을 수 있는 ogg 파일을 읽고 사용할 것입니다. 사용된 명령은 Octave의 터미널 창에서 실행됩니다. 먼저 변수에 ogg 파일을 저장해야 합니다. 참고: 파일이 Octave의 작업 경로에 있어야 한다는 것이 중요합니다.

    >> file='yourfile.ogg'
    >> [M, fs] = audioread(file)
    >> [y, fs] = audioread (filename, samples)
    >> [y, fs] = audioread (filename, datatype)
    >> [y, fs] = audioread (filename, samples, datatype)


    여기서 샘플은 시작 및 종료 프레임을 지정하고 데이터 유형은 반환할 데이터 유형을 지정합니다. 모든 변수에 값을 할당할 수 있습니다.

    >> samples = [1, fs)
    >> [y, fs] = audioread (filename, samples)


    데이터 유형 정보:

    >> [y,Fs] = audioread(filename,'native')


    값이 기본인 경우 데이터 유형은 데이터가 오디오 파일에 저장되는 방식에 따라 다릅니다.

    4단계: 오디오 파일 쓰기

    ogg 파일 생성:

    이를 위해 코사인 값으로 ogg 파일을 생성할 것입니다. 내가 사용할 샘플링 빈도는 초당 44100 샘플이며 파일은 10초 동안 지속됩니다. 코사인 신호의 주파수는 440Hz입니다.

    >> filename='cosine.ogg';
    >> fs=44100;
    >> t=0:1/fs:10;
    >> w=2*pi*440*t;
    >> signal=cos(w);
    >> audiowrite(filename, signal, fs);

    5단계: 오디오 파일 재생


    Octave에는 기본적으로 테스트 목적으로 사용할 수 있는 오디오 플레이어가 있습니다. 다음 기능을 예로 사용하십시오.

     >> [y,fs]=audioread('yourfile.ogg');
    >> player=audioplayer(y, fs, 8)

      scalar structure containing the fields:

        BitsPerSample =  8
        CurrentSample = 0
        DeviceID = -1
        NumberOfChannels =  1
        Running = off
        SampleRate =  44100
        TotalSamples =  236473
        Tag =
        Type = audioplayer
        UserData = [](0x0)
    >> play(player);


    튜토리얼의 다음 부분에서는 고급 오디오 처리 기능과 과학 및 상업적 사용을 위한 가능한 사용 사례를 살펴보겠습니다.