DL/Voice 9

[Voice] 실시간 STT 연구를 위한 선행 지식과 학습 로드맵 (feat. Whisper)

0. 개요"실시간 STT" Real time STT 또는 Streaming STT 라고도 불립니다. "[Voice] 실시간 STT 연구를 위한 선행 지식과 학습 로드맵" 에서는 지금까지 실시간 STT를 구현하기 위해 필요한 여러 선행 연구와 개념들을 순차적으로 정리하고자 합니다.1. OpenAI/Whisper 실시간 STT에 적합하지 않다.현재 ASR 분야에서 가장 성능이 뛰어나다고 알려진 모델은 OpenAI의 "Whisper"입니다.Whisper는 CNN과 트랜스포머를 결합한 구조를 가지고 있습니다. 이러한 구조를 가진 Whisper를 일반적으로 적용 가능한 모델로 훈련하기 위해 OpenAI는 다양한 환경과 녹음 설정, 화자, 언어를 포함한 680,000 시간 이상의 레이블 데이터를 수집했습니다. 이를..

DL/Voice 2024.12.03

[Voice] Audio Processing Libraries (feat. 8bit convert to 16 bit)

0. 8bit convert to 16 bit8k 8bit PCM 음성 신호를 8k 16bit PCM으로 변환하는 것은 음성의 질을 높이는데 도움이 됩니다.또한, 8-bit 음성은 2^8 = 256단계로 소리를 표현하는 반면, 16-bit 음성은 2^16 = 65,536단계로 소리를 표현할 수 있습니다. 이 차이는 음성 신호의 더 작은 차이까지도 표현할 수 있게 해 주며, 더 풍부한 정보를 담은 음성을 제공합니다.  이러한 이유로 8k 8bit 음성을 8k 16bit로 변환하여 자주 사용하고 있습니다. 1. 변환 왜곡 하지만 여기서 라이브러리를 사용해 음성을 16bit로 변환하면 음성에 왜곡이 발생합니다.  int8과 int16가 표현할 수 있는 범위는 아래와 같습니다. int8 (8-bit intege..

DL/Voice 2024.09.25

[Voice] pyVoIP - Python으로 작성된 VoIP 라이브러리

0. pyVoIPpyVoIP는 순수 Python으로 작성된 VoIP(Voice over IP)/SIP(Session Initiation Protocol)/RTP(Real-time Transport Protocol) 라이브러리입니다. 음성 서비스를 개발하려고 하는 파이썬 개발자가 파이썬을 활용해 간단한 서비스를 만드는데 유용합니다.1. 특징 및 기능주요 특징 - 순수 Python 구현 : 외부 종속성 없이 순수 Python으로 구현되어 있어 설치와 사용이 간편합니다[2][4]. - 지원 코덱 : PCMA, PCMU- 독립적인 오디오 처리 : 특정 오디오 라이브러리에 의존하지 않아, pyaudio나 wave 등 선형 사운드 데이터를 처리할 수 있는 다양한 라이브러리와 함께 사용할 수 있습니다. 주요 기능 -..

DL/Voice 2024.09.20

[Voice] 딥러닝 음성 처리 파이썬 실습 - 16K / 8K 비교, 음성 데이터 연산

딥러닝 음성 학습 16K VS 8KAICC를 위한 딥러닝 학습 오디오 데이터 샘플링 레이트로 16K / 8K 중 어떤 것을 사용하는 것이 좋을까요?AICC 음성 모델(VOIP)전화 통화의 주요 목표는 사람의 음성을 명확하게 전달하는 것입니다. 음성 주파수는 일반적으로 300Hz에서 3400Hz 사이에 위치하며, 이는 8kHz 샘플링 레이트로도 충분히 커버할 수 있습니다. 이유Nyquist 이론: 샘플링 레이트가 신호의 최대 주파수보다 최소 두 배 높아야 합니다. 전화 음성 주파수 범위(최대 약 3.4kHz * 2 = 6.8kHz)를 재현하려면 8kHz 샘플링 레이트로도 충분합니다.대역폭 효율성: 낮은 샘플링 레이트는 데이터 양을 줄여 전송 대역폭을 효율적으로 사용합니다. 실시간 서빙이 중요한 AICC에서..

DL/Voice 2024.06.12

[Voice] 디지털 신호(음성) 처리 개념 정리 (3) - 16 Bit, 44.1 kHz / PCM

디지털 판(Bit Depth x Sample Rate)아날로그 신호를 디지털 판에 흡사하게 담아내고자 하였고, 그 X, Y축을 이루는 값이 Bit Depth와 Sample Rate 입니다.Sample Rate는 1초동안 지나가는 신호의 샘플수를 이야기하는데, 1초 길이의 사운드를 얼마나 많은 샘플로 나눌 것인가를 의미합니다. Bit Depth는 Sample Rate로 결정된 각 샘플에 담긴 정보의 양을 의미하는데, 16비트는 2의 16제곱인 65,536개의 서로 다른 정보를 뜻합니다. 즉, 63,535개의 구간이 발생한다는 뜻입니다. 따라서, 16 Bit / 44.1kHz는 아날로그 신호를 1초동안 44,100 x 65,535개의 격자로 이루어진 디지털 판에 담고 있다는 말이 됩니다. WHY? 16Bit..

DL/Voice 2024.06.12

[Voice] 디지털 신호(음성) 처리 개념 정리 (2) - 나이퀴스트 이론 / 앨리어싱 현상

인간의 가청주파수 영역인간의 가청주파수 영역은 일반적으로 20Hz에서 20,000Hz (20kHz) 사이입니다. 나이가 들수록 고주파수에 대한 청력이 감소하는 경향이 있습니다. 어린 아이들은 20kHz까지 들을 수 있지만, 성인은 대개 16kHz 이상은 잘 들을 수 없습니다. 사람은 100~10,000Hz의 주파수 범위를 갖는 목소리를 낼 수 있으며, 회화가 가능한 범위는 200~6,000Hz 영역, 대화가 명료한 범위는 500~2,500Hz 영역이라고 할 수 있다. 그러므로 AICC에 전자기기와 대화가 이뤄지는 AICC의 음성은 8000Hz(8kHz)에서도 충분히 커버가 가능하다. 나이퀴스트 이론 (Nyquist-Shannon)Nyquist-Shannon 이론이란, 신호는 그 신호에 포함된 가장 높은 ..

DL/Voice 2024.06.12

[Voice] 음성 데이터 1D Convolution 설명 및 코드

1. 1D convolution vs 2D convolution CNN(Convolutional Neural Networks)과 1D 컨볼루션의 주요 차이점은 컨볼루션 연산이 적용되는 데이터의 차원성에 있습니다. CNN이라는 용어는 일반적으로 이미지와 같은 2차원 데이터 또는 때에 따라서는 3차원 데이터(예를 들어, 컬러 이미지의 경우 높이, 너비, 컬러 채널)를 처리하는 네트워크를 가리키는 데 사용되며, 이러한 경우에 주로 2D 컨볼루션 연산이 사용됩니다. 1D convolution 반면, 1D 컨볼루션은 시간적 데이터나 시퀀스 데이터와 같은 1차원 데이터를 처리하는 데 적합하며, 시계열 분석이나 텍스트 분석 그리고 오디오 처리 같은 분야에서 주로 사용됩니다. 여기에서 1차원이란 단일 차원의 벡터가 아..

DL/Voice 2024.03.12

[Voice] CNN (Convolutional neural network) 간단 설명

0. 개요 CNN은 주로 이미지 데이터 처리에 강점을 가지고 있지만, 오디오 데이터의 스펙트로그램(시간에 따른 주파수의 분포를 시각화한 것)과 같은 형태로 전처리하면 음성 신호 분석에도 활용할 수 있습니다. CNN으로 음성 데이터 처리를 하기에 앞서 CNN은 무엇인지에 대해 정리하겠습니다. 1. CNN의 역사 LeNet (1998) Yann LeCun에 의해 제안되었습니다. 초기 핸드쓴 문자 인식에 사용됐습니다. CNN의 초기 모델로서 기초적인 컨볼루션 레이어와 풀링 레이어의 구조를 갖고 있습니다. AlexNet (2012) 2012년 ImageNet Large Scale Visual Recognition Challenge에서 우승한 모델입니다. 딥러닝의 인기를 불러일으키는 데 중요한 역할을 했습니다. ..

DL/Voice 2024.03.12

[Voice] 디지털 신호(음성) 처리 개념 정리

0. 기초 용어 Frequency: 주파수 (높이) Amplitude: 진폭 (세기) Phase: 위상 (맵시) 1. 컴퓨터가 소리를 인식하는 방식 연속적인 아날로그 신호를 표본화(Sampling), 양자화(Quantizing), 부호화(Encoding)을 거쳐 이진 디지털 신호(Binary Digital Signal)로 변화시켜 인식하게 됨 표본화(Sampling) 샘플링 단계에서 초당 샘플링 횟수를 정하는데, 이를 Sampling rate라고 함 “1초에 연속적인 시그널을 몇 개의 숫자로 표한할 것인가?” sampling rate가 클수록 즉, 자주 sampling할 수록 원본 데이터와 비슷할 것 → 그러나 그만큼 저장해야 하는 데이터의 양이 늘어나게 됨 sampling rate가 작게 되면 아래와 ..

DL/Voice 2024.03.12