# 모시: 실시간 대화를 위한 음성-텍스트 기반 모델

> Clean Markdown view of GeekNews topic #16840. Use the original source for factual precision when an external source URL is present.

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=16840](https://news.hada.io/topic?id=16840)
- GeekNews Markdown: [https://news.hada.io/topic/16840.md](https://news.hada.io/topic/16840.md)
- Type: GN+
- Author: [neo](https://news.hada.io/@neo)
- Published: 2024-09-20T08:33:30+09:00
- Updated: 2024-09-20T08:33:30+09:00
- Original source: [github.com/kyutai-labs](https://github.com/kyutai-labs/moshi)
- Points: 1
- Comments: 1

## Topic Body

### Moshi: 실시간 대화를 위한 음성-텍스트 기반 모델

#### Moshi 소개
- Moshi는 실시간 대화를 위한 음성-텍스트 기반 모델이자 **양방향** 음성 대화 프레임워크임
- 최첨단 스트리밍 신경 오디오 코덱인 Mimi를 사용함
- Mimi는 24 kHz 오디오를 12.5 Hz로 변환하며, 대역폭은 1.1 kbps로 유지하면서도 80ms의 지연 시간으로 스트리밍 방식으로 처리함
- 기존의 비스트리밍 코덱인 SpeechTokenizer(50Hz, 4kbps)나 SemantiCodec(50Hz, 1.3kbps)보다 성능이 뛰어남

#### Moshi의 작동 방식
- Moshi는 **두 개의 오디오 스트림**을 모델링함: 하나는 Moshi, 다른 하나는 사용자
- 추론 시, 사용자의 스트림은 오디오 입력에서 가져오고, Moshi의 스트림은 모델의 출력에서 샘플링됨
- 이 두 오디오 스트림과 함께, Moshi는 자신의 음성에 해당하는 텍스트 토큰을 예측함
- 작은 Depth Transformer가 주어진 시간 단계에서 코드북 간의 종속성을 모델링하고, 큰 7B 파라미터 Temporal Transformer가 시간적 종속성을 모델링함
- Moshi는 이론적으로 160ms의 지연 시간을 달성하며, 실제로는 L4 GPU에서 200ms 이하의 지연 시간을 가짐

#### Mimi의 특징
- Mimi는 SoundStream과 EnCodec 같은 이전 신경 오디오 코덱을 기반으로 하며, 인코더와 디코더에 Transformer를 추가함
- Mimi는 텍스트 토큰의 평균 프레임 속도(~3-4 Hz)에 더 가깝게 맞추기 위해 스트라이드를 조정함
- Mimi는 WavLM의 자가 지도 표현과 일치하도록 첫 번째 코드북 토큰을 맞추는 증류 손실을 사용함
- Mimi는 **적대적 훈련 손실**과 기능 매칭만을 사용하여 낮은 비트레이트에도 주관적 품질에서 큰 개선을 보임

#### 저장소 구성
- 이 저장소에는 세 가지 버전의 Moshi 추론 스택이 있음
  - PyTorch를 사용하는 Python 버전은 `moshi/` 디렉토리에 있음
  - M 시리즈 Mac을 위한 MLX를 사용하는 Python 버전은 `moshi_mlx/` 디렉토리에 있음
  - 프로덕션에서 사용되는 Rust 버전은 `rust/` 디렉토리에 있음
- 라이브 데모 코드는 `client/` 디렉토리에 제공됨

#### 모델
- 세 가지 모델을 공개함
  - 음성 코덱 Mimi
  - 남성 합성 음성으로 미세 조정된 Moshi (Moshiko)
  - 여성 합성 음성으로 미세 조정된 Moshi (Moshika)
- 각 모델은 HuggingFace 저장소에서 제공됨
- 모든 모델은 CC-BY 4.0 라이선스로 공개됨

#### 요구 사항
- 최소 Python 3.10이 필요하며, Python 3.12를 권장함
- 특정 요구 사항은 각 백엔드 디렉토리를 참조
- PyTorch 및 MLX 클라이언트 설치 명령어 제공

#### Python (PyTorch)
- PyTorch 기반 API는 `moshi` 디렉토리에 있음
- 스트리밍 오디오 토크나이저(mimi)와 언어 모델(moshi)을 제공함
- 인터랙티브 모드에서 실행하려면 서버를 시작해야 함

#### Python (MLX) for macOS
- `moshi_mlx`를 설치한 후 로컬 추론을 실행할 수 있음
- 명령줄 인터페이스는 기본적이며, 에코 취소 기능이 없음

#### Rust
- Rust 추론 서버를 실행하려면 `rust` 디렉토리에서 명령어를 사용
- macOS에서는 `--features cuda` 대신 `--features metal`을 사용할 수 있음

#### 클라이언트
- 웹 UI 사용을 권장하며, 추가적인 에코 취소 기능을 제공함
- 명령줄 인터페이스도 제공됨

#### 개발
- 저장소를 클론하여 설치하고 개발할 수 있음

#### FAQ
- 문제를 열기 전에 자주 묻는 질문 섹션을 확인

#### 라이선스
- Python 부분은 MIT 라이선스, Rust 백엔드는 Apache 라이선스
- 웹 클라이언트 코드는 MIT 라이선스
- 모델 가중치는 CC-BY 4.0 라이선스

#### 인용
- Mimi 또는 Moshi를 사용할 경우, 논문을 인용

### GN⁺의 정리
- Moshi는 실시간 대화를 위한 혁신적인 음성-텍스트 모델로, 낮은 지연 시간과 높은 품질을 자랑함
- Mimi 코덱은 기존 코덱보다 효율적이며, Transformer를 통해 성능을 극대화함
- 다양한 플랫폼에서 사용 가능하며, PyTorch, MLX, Rust 등 여러 버전을 제공함
- 실시간 대화 애플리케이션 개발자에게 매우 유용하며, 특히 낮은 지연 시간이 중요한 경우에 적합함
- 유사한 기능을 가진 다른 프로젝트로는 Google의 WaveNet과 OpenAI의 Jukebox가 있음

## Comments



### Comment 29031

- Author: neo
- Created: 2024-09-20T08:33:31+09:00
- Points: 1

###### [Hacker News 의견](https://news.ycombinator.com/item?id=41581480) 
- **첫 번째 의견**
  - 지연 시간이 매우 짧아 오픈 소스 모델로서는 큰 성과임
  - 최근 매우 우수한 LLM들에 비해 응답 품질이 떨어짐
  - 2019년의 LLM을 연상케 함
  - 오디오 측면에서는 충분히 잘했으나, 응답 품질에 더 집중해야 함

- **두 번째 의견**
  - YouTube에서 몇 달 전의 재미있는 데모를 발견함
  - 지금은 개선되었을 것이라고 확신함

- **세 번째 의견**
  - 실시간 음성 -> LLM -> 음성 출력 솔루션을 개발 중임
  - 스트리밍 신경 오디오 코덱이 가장 흥미로움
  - 제품 관점에서는 LLM에 바로 연결하기보다는 도구/기능 호출 단계가 필요함
  - tincans 개발이 종료되었지만, 이 방향으로의 발전 가능성이 큼

- **네 번째 의견**
  - Moshi는 CC-BY 라이선스임
  - 최근 Apache v2로 출시된 유사한 7b 모델이 있음

- **다섯 번째 의견**
  - iPad의 a-shell 터미널에서 TTS 인터페이스를 제공하는 편리한 방법이 있는지 궁금함

- **여섯 번째 의견**
  - 최근 음성 지원 LM 분야에서 많은 발전이 있었음
  - 관련 프로젝트로 LLaMA-Omni와 mini-omni가 있음

- **일곱 번째 의견**
  - 추론 서버는 Rust로 작성되었고, huggingface의 Candle crate를 사용함
  - Moshi 저자 중 한 명이 Candle의 주요 저자임
  - Candle을 기반으로 한 추론 스택을 구축 중임

- **여덟 번째 의견**
  - 사용해본 결과, 즉시 응답하지만 실제 질문에 대한 답변은 나중에 제공됨
  - 때로는 루프에 빠질 수 있음

- **아홉 번째 의견**
  - 지연 시간이 약 200ms로 매우 짧음
  - 7B 트랜스포머 모델을 사용하여 매우 똑똑하지는 않음
  - 더 큰 모델을 사용하면 지연 시간이 길어질 수 있음
  - 시스템 아키텍처에서 중간 단계의 응답을 제공하는 방법이 필요함

- **열 번째 의견**
  - 응답 속도는 인상적이나, 응답의 품질은 그렇지 않음
  - Moshi와의 대화 예시를 제공함
  - "2019년"이라는 잘못된 응답을 제공함
  - COVID-19에 대한 잘못된 정보를 제공함
