기반 모델은 요즘 핫한 ISFTB와 VITS이다. 빠르면서도 퀄리티가 좋은 걸로 유명하다. ljspeech 데이터셋을 쓰는데, 직접해보았을 때 둘 다 무조건 음소별 패딩을 주고 하는 게 낫다.음소를 붙여서 그냥 Training 하게 되면 발음을 구분을 못한다.방법은 아래 글 참고.2024.12.17 - [데이터 사이언스 & 로봇/ML 및 DL 관련 이론] - [TTS] 한국어의 음소와 음절 패딩 IPA 발음으로도 실험해보았으나, espeak-ng의 변환은 12년 전에서 변하지 않았으므로 정말 낮은 퀄리티였다(외국인 발음).다국어를 위해 IPA로 하려면 개인적인 preprocessing이 필요하다. 거의 없어서 직접 만드는 것도 고려해야한다. 직접 부딪히고 파인튜닝해보면서 깨달은 점은 다음과 같다.1. 1..
화자 분리는 '언제', '누가' 말했는 감지하여 분리하는 기술이다. 한마디로 일직선적인 대화를 주고받는 Wav 파일이 있다면, 1초~2초까지는 사람 1, 2~3초까지는 사람 2..이런 식으로 분리해주는 기술인 것이다. 그래서 이 화자 분리를 실행할 때는 VAD(Voice Activity Detection)의 역할이 매우 중요하다.언제 말이 시작되고, 끝났는지를 알면 정확하게 나눌 수 있으니 말이다. 거기에 더해 Speaker Segmentation을 한다.Segmentation이라고 하면 비전 분야에서 많이 들어 보았을 것이다. 객체별로 어떤 객체인지 파악하는 것이다.그리고 그 원리는 픽셀 단위로 해당 경계가 물체인지 아닌지를 확률적으로 파악해서 합치는 것이다. 음성도 마찬가지로 화자별로 어떤 화자인지를..

지난 시간에는 Transformer 구조의 한계를 초월하기 위해서, 상태 공간 모델을 사용한 Mamba를 다루었다.본격적으로 Jamba 구조를 다루기 전에, 그렇다면 과연 Mamba가 나오기 전에 어떤 방법들로 Transformer의 시간을 줄이기 위해 노력했는지를 보려고 한다.사실 관련 논문들이 너무나도 많지만, 대표적으로 가장 유명한 걸 꼽으라 하면 FlashAttention이지 않을까 싶다.사용하기도 편하고, 설명도 직관적이다. 그렇기에 정말 괜찮은 구현이라고 할 수 있다.언제나 오는 템플릿을 보고 한 번 시작해보자.논문 구현에 앞서 확인해야 할 포인트Read1. 논문 제목(title)과 초록(abstract), 도표(figures) 읽기2. 도입(introduction), 결론(conclusion..
괜찮다고 생각되는 TTS 모델에 한국어는 많이 없다.따라서 직접적으로 파인튜닝을 하는 일들이 많은 데, 이때 tts에는 음소와 음절 패딩 부분이 데이터셋에 존재하는 경우가 있다. 음소는 한국어의 자음, 모음처럼 ㄱ, ㄴ, ㄷ, ...ㅏ,ㅑ,ㅓ..등등 각각 따로따로 발음하는, 말 그대로 음의 소리를 나타내어 발음하는 것이다. 이를 영어로는 Phoneme라고 한다. 영어는 음소 언어이므로, 만약 알파벳인 apple을 바꾸면 이렇게 될 것이다. [a,p,p,l,e] 같은 방식으로 한국어도 '사과' 라는 단어가 있다면 [ㅅ,ㅏ,ㄱ,ㅗ,ㅏ]가 된다. 그렇다면 결국 TTS 모델은 숫자를 처리해야 하는데, 음을 어떻게 처리할까? 해답은 간단하다. 바로 각 발음에 숫자를 매겨 조합하는 것이다. 모든 발음과 말은 결국 ..

멀티 에이전트에는 감독형 에이전트와 협력형 에이전트가 있다.이번 프로젝트를 진행할 때, 필자의 팀은 감독형 에이전트를 사용해 심리 상담 에이전트를 구축했었다. 왜 이렇게 구축했냐면, 심리 상담 시스템은 협력해서 결론을 내는 게 아니라 각 전문가가 대답하고, 해당 대답을 모아서 적절한 걸 반환하는 게 맞다고 생각했기 때문이다.실제로 이렇게 구축하면 supervisor가 각 agent에게 대답을 전부 물어보고, 각 대답이 모여 충분히 되었다고 판단되었을 때 어떤 Agent의 대답이 적절한지 판단하고 반환된다. 처음에 LangChain의 ReACT 에이전트로 구성했었는데, 다음과 같은 문제가 발생했다.Invalid or incomplete responseParsing LLM output produced bot..
보호되어 있는 글입니다.