matlab 을 이용한 음성 데이터 다루기

12
선선선선 Term Project 컴컴컴 컴컴컴 200611495 컴컴컴 200811429 컴컴컴 200114 컴컴컴

Upload: erv

Post on 23-Feb-2016

1.846 views

Category:

Documents


11 download

DESCRIPTION

선형대수 Term Project . MATLAB 을 이용한 음성 데이터 다루기. 컴퓨터 공학부 200611495 유상원 200811429 문재원 200114 김용호. 개요. Matlab 에서 음성 데이터를 가지고 노래에서 MR 제거 , Vocal 제거 , 음성 변조 ( 남자목소리 여자목소리 ) 등의 조작을 하는 방법에 대해 알아본다 . 음원. MR. 보컬. 변조. wav Data. [data, fs , bits]= wavread (); - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: MATLAB 을 이용한  음성 데이터 다루기

MATLAB 을 이용한 음성 데이터 다루기

선형대수 Term Project

컴퓨터 공학부200611495 유상원200811429 문재원200114 김용호

Page 2: MATLAB 을 이용한  음성 데이터 다루기

개요

Matlab 에서 음성 데이터를 가지고노래에서 MR 제거 , Vocal 제거 , 음성 변조 ( 남자목소리 <->

여자목소리 )

등의 조작을 하는 방법에 대해 알아본다 .

음원 MR 보컬 변조

Page 3: MATLAB 을 이용한  음성 데이터 다루기

wav Data

[data, fs, bits]=wavread();

- Data : 소리 벡터- Fs : 주파수- Bits : 단위 sample 당 비트의 개수

Page 4: MATLAB 을 이용한  음성 데이터 다루기

MR 추출

스테레오 사운드는 왼쪽의 데이터와 오른쪽의 데이터가 각각 1,2 열에 있다Vocal 부분은 같은 위상으로 저장 , MR 부분은 다른 위상으로 저장 되어 있다 .

29 행 : 1 열과 2 열의 데이터의 부호가 같다 ( 위상이 같다 -> Vocal)

32 행 : 2 열과 2 열의 데이터의 부호가 반대이다 ( 위상이 반대이다 -> MR)

Page 5: MATLAB 을 이용한  음성 데이터 다루기

MR 추출

mr = data(:,1)-data(:,2);

mrs = [mr mr.*(-1)]; wavwrite(mrs,fs,bit,'mr.wav');

Page 6: MATLAB 을 이용한  음성 데이터 다루기

Vocal 강조

mr = data(:,1) - data(:,2);

vocal = data(:,1) + data(:,2);

?

1 열과 2 열을 빼서 같은 위상을 상쇄 시켰다면반대로 더하면 다른 위상을 상쇄 시킬 수 있지 않을까 ?

But….. 보컬의 목소리가 강조 되는 듯 보이나 , 기타 잡음 , 악기소리도 같이 강조 되어 소리가 커진것 같은 효과만 보임

Page 7: MATLAB 을 이용한  음성 데이터 다루기

Adaptive Filter

잡음 제거 , 소음제거에 쓰여왔음 .

입력 신호와 얻고자 하는 기대신호의 차이 ( 노이즈 ) 를 걸러낸다 .

Page 8: MATLAB 을 이용한  음성 데이터 다루기

STFT

시간에 따른 주파수를 알 수 있으므로 음정 박자 등이 보인다 .

피크부분만 카운팅 한 모습

시간이 길어지면 주파수 정보가 흐려짐

Page 9: MATLAB 을 이용한  음성 데이터 다루기

STFT

523.25Hz

587.32Hz

659.25Hz

주파수와 옥타브 표를 이용해 악보와 비교 가능

Page 10: MATLAB 을 이용한  음성 데이터 다루기

Phase vocoder

Pitch shiftPhase Vocoder 가 나오기 전의 음성 변조(1.5 배속 , 0,5 배속 같은 것 )

음원

시간을 줄이니 높아진 소리 시간을 늘이니 낮아진 소리

고무줄 같은 음성 데이터

Page 11: MATLAB 을 이용한  음성 데이터 다루기

Phase vocoder

Phase VocoderSTFT 로 얻은 주파수와 시간에 대한 정보를 블록으로 나눈다

+

Page 12: MATLAB 을 이용한  음성 데이터 다루기

시연 영상