Sunny Archive ☀️
본문 바로가기

전체 글122

적성 찾기 힘들이지 않고 숨쉬듯이 할 수 있는 것 루틴대로 사는 것 무언가 꾸준히 하는 것, 습관 만들기 (e.g. 아침밥 챙겨먹기) 기록 남기기 (e.g. 일기/플래너 쓰기, 카카오맵 리뷰 남기기, 블로그 운영) 사진 찍기, 색감보정 헤드셋으로 장시간 노래듣기 요리하기, 하지만 뒷정리는 귀찮아 문득 공부하다가 심심해져서 써보았다. 인스타에서 봤는데 "나는 이걸 하루종일 할 수 있는데 남들은 나만큼 안한다고?" 라고 생각되는 게 곧 내 적성이라고 한단다. 2024. 3. 6.
FFT 수행 시 zero padding이 frequency resolution에 미치는 영향 STFT 결과로 얻게 된 frequency bin이 무엇인지 알아보고 FFT 수행 과정에서 zero padding이 frequency resolution에 어떤 영향을 미치는지 알아봅시다. STFT (Short-time Fourier Transform) 자연적으로 발화되는 음성은 시간에 따라 계속해서 변하는 성질을 가지고 있기 때문에, 음성 신호를 표현하는데 있어 일반적인 Fourier 표현 방법을 적용하는 건 한계가 있습니다. 이 문제를 해결하기 위해, 음성 신호를 주파수 영역에서 분석할 수 있도록, STFT, 즉, 음성 신호를 짧은 세그먼트 단위로 나눠 DFT를 수행하게 됩니다.   Frequency binSTFT 결과는 frequency, time 값들로 이루어진 2차원 행렬로서 표현이 가능한데 이.. 2024. 2. 14.
음성신호처리에서 Pre-emphasis filtering을 하는 이유 오디오 신호 처리에 사용되는 기술인 Pre-emphasis filtering에 대해 알아봅시다. Pre-emphasis filtering 위 그림은 넓은 주파수 대역에서 음성 신호의 average magnitude spectrum을 나타낸 것입니다. 저주파에서는 높은 에너지를 가지고 있는 반면, 고주파로 갈수록 에너지가 줄어드는 것을 관찰할 수 있습니다. 이는 인간의 발성기관과 소리의 특성에 의해 발생하게 되는데 이 내용은 밑에서 자세하게 설명하도록 하겠습니다. 위에서 보았던 것처럼 고주파의 에너지가 감소하는 문제를 pre-emphasis filtering이라는 전처리 방법을 통해 해결할 수 있습니다. 사람의 음성이 저주파 대역에서 강조되고 고주파 대역에서는 크기가 작아지는 특성이 있기 때문에 전처리를 .. 2023. 11. 10.
Hamming window와 Rectangular window 비교 window 개념을 살펴보기 전에, 왜 신호를 짧은 시간 단위로 나눠 주파수 분석을 수행하는지에 대해 알아봅시다. STFT를 하는 이유음성 신호는 time-varying, non-stationary 특성을 가지고 있어서 정확한 주파수 분석을 수행하는데 어려움이 있습니다. 하지만, 음성 신호를 짧은 간격으로 쪼개 보면, 신호의 특성이 시간에 따라 천천히 변하여 준주기적인 특성을 갖기 때문에 작은 시간 단위로 나눠 short-time fourier transform(STFT)를 수행해 주파수 분석을 할 수 있습니다. window와 framenon-stationary한 음성신호는 작은 시간 단위로 쪼개 stationary한 청크로 잘라 처리해줄 수 있습니다. 윈도잉(windowing)은 신호의 어느 부분을 볼.. 2023. 11. 9.
맥북 M1 pro에 Tensorflow, Keras 개발 환경 세팅하기 Visual Studio Code에서 구동하였습니다. 1. Motivation 딥러닝 공부를 위해서 Tensorflow 환경을 세팅해야 했습니다. M1의 경우 anaconda에서 tensorflow, keras 지원을 안한다고 들어서 miniforge를 이용해 tensorflow, keras를 설치하였습니다. miniforge는 anaconda의 축소 버전입니다. 2. miniforge 다운로드 https://github.com/conda-forge/miniforge GitHub - conda-forge/miniforge: A conda-forge distribution. A conda-forge distribution. Contribute to conda-forge/miniforge developmen.. 2023. 10. 30.
M1 Mac에서 Image data augmentation 오류 해결 Error Message NotFoundError: No registered 'RngReadAndSkip' OpKernel for 'GPU' devices compatible with node { {node RngReadAndSkip}} . Registered: device='XLA_CPU_JIT' device='CPU' [Op:RngReadAndSkip] Solution # 텐서를 CPU에 할당 with tf.device('/cpu:0'): data_augmentation = keras.Sequential( [ layers.RandomFlip("horizontal"), layers.RandomRotation(0.1), layers.RandomZoom(0.2), ] ) tensorflow-metal 플러.. 2023. 10. 1.