2023년 6월 23일 금요일

음성인식 관련기술 survey

혼동을 주는 유사단어들이 좀 있는 것 같아서 본격적으로 스터디 들어가기 우선 용어부터 정리중


1. ASR에 대해 우리말로 정의와 기본개념이 잘 정리되어있는 IBM 소개 페이지

URL: https://www.ibm.com/kr-ko/topics/speech-recognition


2. 화자 인식 기술에서 쉽게 혼동될만한 개념들: 화자식별, 화자검증, 화자분리, 화자분할 등

다 그놈이 그놈 또는 상하위 개념 포함관계인줄 알았으나 엄밀히 따지면 명확한 차이가 있었다.

출처: https://www.skelterlabs.com/blog/speechai


- 화자 식별(Speaker Identification)  

기 등록된 목소리 중 누구 목소리랑 일치하는가?


- 화자 검증(Speaker Verification)

등록된 특정인의 목소리와의 일치여부 검증 -> T/F


- 화자 분리(Speaker Seperation)

특정 화자의 목소리만 분리(예: 내 목소리만 필터링)


- 화자 분할(Speaker Diarization: SD)
발화자가 누구인가?

개념 소개: https://dos-tacos.github.io/paper%20review/speaker_diarization/

네이버 클로바노트의 회의록 기능이 괜찮아서 써봤었는데 여기서 녹음할 때 사용하는 기술이 SD 알고리즘 쪽에 속하는 것 같았다.

2023년 6월 2일 금요일

Nuxt.js - Vue와 호환되면서 SSR을 지원하는 웹개발 프레임워크






Nuxt.js는 Vue.js 기반의 오픈소스 웹 프레임워크로 다음과 같은 장점을 가지고 있다.

1. 서버 사이드 렌더링 (SSR): Nuxt.js는 기본적으로 서버 사이드 렌더링을 지원한다. 이는 서버에서 웹 페이지를 사전에 렌더링하여 초기 로딩 속도를 향상시키고, 검색 엔진 최적화(SEO)를 개선할 수 있다. SSR을 통해 빠른 초기 렌더링을 제공하면서도 Vue.js의 장점을 그대로 활용할 수 있다.

2. 유연한 라우팅: Nuxt.js는 Vue Router를 기반으로 한 강력한 라우팅 시스템을 제공한다. 파일 시스템 기반의 라우트 매핑 방식을 사용하여 개발자가 간편하게 페이지와 라우트를 구성할 수 있다. 이를 통해 복잡한 애플리케이션의 라우팅 관리를 단순화할 수 있다.

3. 자동 코드 분할 (Automatic Code Splitting): Nuxt.js는 페이지 간에 필요한 컴포넌트와 모듈들을 자동으로 코드 분할하여 번들 파일 크기를 최적화한다. 이를 통해 초기 로딩 속도를 향상시키고 필요한 컴포넌트만 로드하여 불필요한 자원 낭비를 줄일 수 있다.

4. 정적 사이트 생성 (Static Site Generation): Nuxt.js는 정적 사이트 생성 기능을 지원하여 빌드 시간에 웹 페이지를 사전 렌더링하여 정적 파일로 생성할 수 있다. 이를 통해 서버에 대한 의존성을 제거하고 CDN과 같은 정적 호스팅을 통해 빠르고 안정적인 배포가 가능하다.

5. 확장성과 생태계: Nuxt.js는 Vue.js의 생태계와 호환되며, 다양한 플러그인과 모듈을 활용할 수 있다. Vue.js 생태계의 커뮤니티, 플러그인, 모듈, 컴포넌트 등을 활용하여 개발 생산성을 향상시킬 수 있다. 또한, Nuxt.js 자체의 확장성도 뛰어나고, 기능을 커스터마이징하고 확장할 수 있는 API를 제공한다.

이러한 장점들로 인해 Nuxt.js는 SSR, 코드 분할, 정적 사이트 생성 등을 필요로 하는 웹 애플리케이션 또는 웹 사이트의 개발에 적합한 선택지가 될 수 있다.

하지만 내가 Nuxt.js로 고른 이유는 단순하게 지난번 프로젝트에서 Vue.js를 써봤기 때문.


p.s. Showcase에 가보니까 요새 ChatGPT로 핫한 OpenAI 소개페이지도 있음

[AI] 머신러닝 공부 추천도서 - 핸즈온 머신러닝 2판

핸즈온 머신러닝 (2판) - 오렐리앙 제롱 저 / 박해선 역


https://m.hanbit.co.kr/store/books/book_view.html?p_code=B7033438574


1판을 사서 봤었는데 흑백에서 컬러인쇄로 바뀌고 페이지 수는 거의 2배가 되었다.

1판 봤을 때는 배경지식도 부족한 상태여서 그런지 몰라도 머리에 잘 들어오지 않았는데 2판은 설명이 친절하게 느껴졌다. 그 동안 배경지식이 조금 더 생겨서 그런건지 책을 새로 써서 그런건지는 모름.

책이 무거우니 부피와 무게가 부담되시는 분들은 전자책으로 보는 것도 괜찮을 것 같음.

참고로 전자책 버전은 epub 방식은 아니고 pdf포맷임.


2판이 2020년에 나왔는데 벌써 3년이 지난 시점이지만, 예제를 돌리면서 실습해 본 결과 3판이 나온다 해도 당분간 충분히 쓸만할 것 같음.


예제들은 사이킷런으로 시작하지만 케라스와 텐서플로도 다루고 있다.

사이킷런은 잘 안써서 몰랐는데 생각보다 있을 기능 다 있고 기초 공부하는 데는 충분해 보인다.


유튜브에서 역자의 강의도 제공함

https://www.youtube.com/watch?v=kpuRasV_Q9k&list=PLJN246lAkhQjX3LOdLVnfdFaCbGouEBeb


What-If tool - 텐서플로 공부할 때 유용한 도구

구글에서 만든 유용한 툴


https://pair-code.github.io/what-if-tool/


What-If Tool (WIT)의 목표: 최소한의 코딩으로 머신러닝 모델을 검사


- 내가 만든 모델을 가지고 분석, 예측, 편향여부 등에 대해 테스트하고 예측결과를 시각화해서 쉽게 확인:

데이터를 직접 내 모델에 넣으면 그자리에서 시각화 결과를 보여줘서 간편하게 결과 예측이 가능

- Jupyter, Colab 지원


Datapoint editor 화면 - 각종 입력값 필드를 수정해보고 결과를 미리 볼 수 있음


매번 까먹는 악상 지시어 대충 메모

con ~    ~ 와 함께(with)


dolce     달콤하게, 부드럽게


m.d. (mano destra)     오른손(mano는 이태리어로 손이라는 뜻)
m.s. (mano sinistra)    왼손



piu      더욱
poco a poco 점점, 조금씩


rallentando (rall.) 점점 느리게


sempre        항상(예: Forza Napoli sempre)
senza ~        ~ 없이(without)
slentando     속도를 늦추며
sotto voce    소리를 낮춰서(예: Chopin Prelude Op.28 No.15에서 B파트 도입부)
spiritoso      활기차게


tempo giusto 규정된 빠르기로


un poco     조금