본문 바로가기
728x90
반응형
SMALL

전체 글1508

영점 교차율 (Zero-crossing rate) 영점 교차율 (Zero-crossing rate) 다양한 음성 및 오디오 파형을 보면 내용에 따라 부드러움 (smoothness)이 많이 다르다는 것을 알 수 있다. 예를 들어, 유성음은 무성음보다 더 부드럽다. 따라서, 부드러움은 신호의 유익한 특성이다. 신호의 부드러움을 측정하는 매우 간단한 방법은 해당 신호 세그먼트 내에서 제로 크로싱 수를 계산하는 것이다. 음성 신호는 천천히 진동한다. 예를 들어, 100Hz 신호는 초당 0을 100 교차하는 반면 무성 마찰음은 초당 3000을 교차할 수 있다. 창에서 신호에 대한 제로 크로싱 구현은 다음과 같다. # static example of zero-crossingfrom ipywidgets import *import IPython.dis.. 2024. 4. 24.
자기 상관 관계 및 공분산 자기 상관 관계 및 공분산 음성 신호 세그먼트는 큰 규모에서 구조를 식별하기 어렵지만 작은 규모에서는 신호가 연속적으로 보인다. 음성 신호는 일반적으로 서로 시간적으로 가까운 샘플링이 진폭이 유사한 구조를 갖는다. 이러한 구조를 종종 단기 시간 구조라고 합니다. 보다 구체적으로, 신호 샘플은 이전 및 다음 샘플과 상관된다. 이러한 구조는 공분산 (covariance)과 상관 관계 (correlation)로 측정된 통계에 있으며, 평균이 0인 변수 x와 y에 대해 다음과 같이 정의된다. import numpy as npimport matplotlib.pyplot as pltfrom scipy.io import wavfileimport scipy# read from storagefilen.. 2024. 4. 24.
음성 신호에서 스펙트로그램 해석 음성 신호에서 스펙트로그램 해석 스펙트로그램 (또는 로그 크기 스펙트로그램)은 음성 신호의 효과적인 시각화이다. 스펙트로그램을 보면 고조파 구조 (harmonic structure), 시간적 사건 (temporal events), 음형대 (formants) 등 음성 신호의 가장 중요한 속성 중 다수를 볼 수 있다. # Initializationimport matplotlib.pyplot as pltfrom scipy.io import wavfileimport scipyimport scipy.fftimport numpy as npimport librosaimport librosa.displayimport IPython.display as ipdspeechfile = 'sample... 2024. 4. 24.
단시간 푸리에 변환 (STFT) 단시간 푸리에 변환 (Short-Time Fourier Transform) 피치 (Pitch)는 높거나 낮은 음조가 무엇을 의미하는지 음조의 주파수에 대한 사람의 인식을 나타낸다. 신호의 푸리에 스펙트럼은 이러한 주파수 내용을 나타낸다. 이는 신호를 시각적으로 검사할 수 있기 때문에 스펙트럼을 작업하기에 직관적인 영역으로 만든다. 실제로, 이산 시간 신호를 사용하여 해당 시간-주파수 변환이 이산 푸리에 변환이 되도록 작업한다. 이는 길이 신호 X를 다음과 같이 N 계수의 복소수 값 주파수 영역 표현으로 매핑한다. 실수 값 입력의 경우 양수 및 음수 주파수 구성 요소는 서로의 복소 공액 (complex conjugates)이므로 고유한 정보 단위를 유지한다. 그러나 스펙트럼은 복소수 벡터이므로 시각화하기가.. 2024. 4. 23.
Sound Energy 신호 에너지 신호 에너지란 일반적으로 신호의 분산 (variance)을 의미하며, 이는 신호 x의 평균이 평균인 평균 제곱 편차 (average squared deviation)이다. x를 진자 (pendulum)의 변위 (displacement)로 해석하면 분산은 에너지의 척도다. 진동 신호의 진폭은 진동 기간에 따라 달라지므로 일반적으로 순간 에너지 (instantaneous energy)를 추정하는 것은 의미가 없으며 일부 창에 대한 평균만 계산된다. 그러나 윈도우 함수는 평균 에너지를 감소시키고 (신호에 1보다 작은 양을 곱함) 절대 에너지 추정이 필요한 경우 수정해야 하는 편향 (bias)을 도입한다. 그러나 일반적으로 편향은 데이터 세트 전체에서 일관되며 무시할 수 있다. 일반적인 에너지 추정.. 2024. 4. 23.
TabNet TabNet TabNet은 tabular 데이터의 훈련에 맞게 설계됐으며 Tree 기반 모델에서 변수의 선택 특징을 네트워크 구조에 반영한 테이블 형식 데이터 학습 아키텍처 모델이다. TabNet은 순차적인 attention을 사용하여 각 결정 단계에서 추론할 기능을 선택하고, 학습 용량이 가장 두드러진 기능에 사용되므로 해석 가능성과 보다 효율적인 학습을 가능하게 한다. 예제 pip install pytorch_tabnet from sklearn.model_selection import train_test_split from sklearn.preprocessing import LabelEncoder from sklearn.metrics import accuracy_score from pytorch_ta.. 2024. 4. 21.
윈도우 기법 (Windowing) 윈도우 기법 (Windowing) 음성 문장은 일련의 음소 (phonemes)다. 따라서, 음성 신호는 성격이 시변적 (time-variant)이다. 따라서 신호에서 정보를 추출하려면 신호를 충분히 짧은 세그먼트로 분할해야 한다. 즉, 경험적으로 말하면 각 세그먼트에는 하나의 음소만 포함된다. 즉, 음성 신호의 속성이 해당 세그먼트 내에서 시간 변화를 갖지 않을 만큼 충분히 짧은 세그먼트를 추출해야 한다. 윈도우 기법은 신호 처리의 고전적인 방법으로, 입력 신호를 시간적 세그먼트로 분할하는 것을 의미한다. 그러면 세그먼트의 경계가 실제 신호와 일치하지 않는 불연속성으로 표시된다. 신호의 통계적 속성에 대한 분할의 영향을 줄이기 위해 시간 세그먼트에 윈도우 기법을 적용한다. 윈도우 함수는 경계에서 0으로 .. 2024. 4. 17.
관계형 데이터베이스 관리 시스템 (Relational DataBase Management System) 데이터베이스 (Database) 1980년대에 컴퓨터가 보급화 되면서 처리해야 할 데이터가 늘어남에 따라 여러 회사들에서 대규모 데이터를 관리하기 위해서 통합된 환경이 필요했다. 데이터들을 표현할 수 있는 다양한 모델 (Relational Model, Network Model, Hierarchical Model 등)이 등장했다. 데이터를 체계적으로 관리할 수 있는 공간을 데이터베이스 (database)로 정의한다. 그리고 데이터베이스를 관리하는 시스템을 DataBase Management System (DBMS)으로 정의한다. 데이터베이스의 이점 데이터베이스라는 개념이 나타나기 이전엔, File 단위로 데이터를 관리 (ex: 윈도우 탐색기, macOS Finder) 데이터를 효율적으로 관리하기 힘든 여러.. 2024. 4. 16.
[Prompt Engineering] Langchain Langchain LangChain은 LLM을 활용한 애플리케이션 개발을 단순화하기 위해 설계된 오픈 소스 프레임워크이다. 다양한 LLM과 상호 작용하고, 여러 모델을 연결하여 복잡한 AI 어플리케이션을 구축하는 데 도움을 주는 도구이다. 주로 LLM 자체를 개발하는 것보다는 만들어진 LLM을 사용하여 여러 텍스트 분석 기능, 챗봇 개발 등에 사용된다. 개발 환경 설치 pip install langchain langchain-google-genai langchain-community langchainhub langchain-chroma bs4 API 설정 API 키는 https://aistudio.google.com/app/apikey에서 발급받는다. 다만, 5월 2일부터 유료화 예정이다. import .. 2024. 4. 16.
[Matplotlib] WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found 폰트 깨짐 문제 한글 폰트를 설정해 주지 않으면 한국어가 깨져서 나오는 문제가 발생한다. 폰트 설치 !apt-get -qq install fonts-nanum 예제 import os import matplotlib.pyplot as plt from matplotlib import font_manager import matplotlib.font_manager as fm fe = fm.FontEntry( fname=r'/usr/share/fonts/truetype/nanum/NanumGothic.ttf', # ttf 파일이 저장되어 있는 경로 name='NanumGothic') # 원하는 폰트 설정 fm.fontManager.ttflist.insert(0, fe) # Matplotlib에 폰트 추가 plt... 2024. 4. 12.
728x90
반응형
LIST