ks.dgoon.lee log

Meta seamless M4T: iOS 테스트앱 만들어봄


2023/12/11 01:05:15 #dev #ai #jupyter notebook #seamless #ios
Attachments:

얼마전 메타에서 Seamless Communication 이라는걸 발표했다. SeamlessM4T, SeamlessExpressive, SeamlessStreaming 이렇게 세가지 모델이 있는데, 각각 무얼하는지는 얘들 홈페이지에서 캡쳐:


일단 모델을 받아서 집에 있는 컴에서 돌려보는건 해봤는데, 제일 먼저 관심이 가는건 SeamlessM4T v2 요녀석이다. 꽤 많은 언어쌍에 대해서 From/To (Voice or Text) 를 해준다. 예를 들어서,

* (한국어) (텍스트) -> (영어) (음성)

* (한국어) (음성) -> (일본어) (텍스트)

이런게 아주 많은 언어쌍에 대해 된다는 것... 그런데 테스트 해 보니 성능은 (체감상) 좀 미묘하다. 그래도 이참에 삽질좀 해놓자 싶어서 뚝딱뚝딱

  1. API 서버 만들어 도메인 붙이고,
  2. Jupyter notebook 에서 테스트 해보고,
  3. iOS 테스트 앱 하나 만들어서 from, to 언어 설정하고 (기본값은 from=kor, to=eng) record, translate 버튼 붙여 동작시키기
  4. API 서버의 음성 번역 엔진은 일단 Seamless M4T 로 구현
  5. Done!

몇 가지 사소하지만 시간이 좀 걸린 삽질들이 있었지만, 어쨌든 끗!

앱으로 만들고 테스트를 해 보니 잘 된다. 나중에 서버 엔진 구현 부분만 바꾸면 테스트 앱은 그대로 두고 여러가지 다른 것들도 쓸 수 있다. (음성인식은 A로 한다거나, 번역은 B 서비스를 쓴다거나, TTS 만 C 로 해본다거나 ... 등등)

---

삽질1: iOS에서 Raw PCM 데이터를 가지고 재생하는게 5분이면 될줄 알았는데 의외로 몇시간 걸림.

삽질2: 한참 시뮬레이터에서 동작시키고 나서 디바이스에 빌드해 올리려고 하니, 작업하던 아이맥이 오래된거라 xcode 버전이 옛날거 ... M2 맥북프로에 다시 xcode 깔고 하느라 시간 많이 날렸다.

삽질3: ipywebrtc 로 jupyter notebook 에서 음성 데이터 얻었는데, a. webm 포맷으로 나온거 모르고 한참 삽질, b. 분명 sample rate=16000 줬는데, 지 맘대로 48000으로 뱉어주고 있어서 또 한참 삽질 ... 



댓글 0개