GitHub - Blaizzy/mlx-audio: A text-to-speech (TTS), speech-to-text (STT) and speech-to-speech (STS) library built on Apple's MLX framework, providing efficient speech analysis on Apple Silicon.
Service

GitHub - Blaizzy/mlx-audio: A text-to-speech (TTS), speech-to-text (STT) and speech-to-speech (STS) library built on Apple's MLX framework, providing efficient speech analysis on Apple Silicon.

Blaizzy
2026.01.24
·GitHub·by web-ghost
#MLX#TTS#STT#Speech Processing#Apple Silicon

핵심 포인트

  • 1MLX-Audio는 Apple의 MLX framework를 기반으로 Apple Silicon에 최적화된 고성능 오디오 처리 라이브러리로, Text-to-Speech (TTS), Speech-to-Text (STT), Speech-to-Speech (STS) 기능을 제공합니다.
  • 2이 라이브러리는 빠른 추론 속도, 다국어 지원, 음성 커스터마이징, 다양한 모델 아키텍처 지원, 그리고 3-bit부터 8-bit까지의 quantization 기능을 특징으로 합니다.
  • 3Command Line, Python API, OpenAI 호환 REST API, 웹 인터페이스를 통해 사용 가능하며, Kokoro, Whisper, VibeVoice-ASR 등 여러 최신 모델들을 포함하여 다양한 오디오 AI 작업을 수행할 수 있습니다.

MLX-Audio는 Apple의 MLX 프레임워크를 기반으로 구축된 오디오 처리 라이브러리로, Apple Silicon (M 시리즈 칩)에 최적화되어 Text-to-Speech (TTS), Speech-to-Text (STT), 그리고 Speech-to-Speech (STS) 기능을 빠르고 효율적으로 제공합니다.

이 라이브러리의 핵심적인 방법론은 Apple Silicon의 고성능 신경망 엔진을 최대한 활용하기 위해 MLX 프레임워크를 전적으로 사용하는 것입니다. 이는 모델의 빠른 추론 속도를 가능하게 합니다. MLX-Audio는 다양한 최신 음성 모델 아키텍처를 MLX 형식으로 변환하고 통합함으로써, 기존 연구 모델들을 Apple 생태계에 효과적으로 배포할 수 있도록 합니다. 예를 들어, mlx_audio.convert 스크립트를 통해 Hugging Face에 있는 PyTorch 또는 TensorFlow 기반의 모델들을 MLX 호환 형식으로 변환하며, 이 과정에서 bfloat16, float16 등의 다양한 dtype을 지정하고 3비트, 4비트, 6비트, 8비트 등 다양한 수준의 양자화(quantization)를 적용하여 모델 크기를 줄이고 추론 성능을 더욱 향상시킵니다. 양자화는 q-bits 파라미터를 통해 가중치당 비트 수를 제어하며, q-group-size를 통해 양자화 그룹 크기를 조절할 수 있습니다.

주요 기능은 다음과 같습니다:

  • 고속 추론: Apple Silicon에 최적화되어 빠른 속도로 TTS, STT, STS 작업을 수행합니다.
  • 다양한 모델 아키텍처 지원: Kokoro, Qwen3-TTS, CSM (TTS), Whisper, Parakeet, VibeVoice-ASR (STT), SAM-Audio, MossFormer2 SE (STS)와 같은 여러 유명 모델들을 통합하여 제공합니다.
  • 다국어 지원: 여러 모델들이 다양한 언어에 대한 지원을 포함합니다.
  • 음성 커스터마이징 및 클로닝: TTS 모델에서 다양한 음색 선택, 감정 제어, 심지어 참조 오디오를 통한 음성 클로닝 기능을 제공합니다.
  • 조절 가능한 음성 속도 제어: TTS 출력의 속도를 조절할 수 있습니다.
  • 대화형 웹 인터페이스 및 OpenAI-compatible REST API: 사용자가 쉽게 기능을 활용할 수 있도록 웹 UI와 표준 API 엔드포인트를 제공하여 외부 서비스와의 통합을 용이하게 합니다. 예를 들어, TTS 엔드포인트는 POST /v1/audio/speech이며, STT 엔드포인트는 POST /v1/audio/transcriptions입니다.
  • 양자화 지원: 모델의 크기를 줄이고 성능을 최적화하기 위해 3비트, 4비트, 6비트, 8비트 등의 양자화를 지원합니다.
  • Swift 패키지: iOS/macOS 통합을 위한 Swift 패키지도 제공하여 Apple 기기에서의 온디바이스 배포를 지원합니다.

라이브러리 사용은 pip install mlx-audio를 통해 간편하게 설치할 수 있으며, Command Line Interface (CLI) 또는 Python API를 통해 접근 가능합니다.

TTS 모델 예시:

  • Kokoro: 빠르고 고품질의 다국어 TTS 모델로, 54개의 음성 프리셋을 제공하며, voice 파라미터를 통해 음성 선택과 lang_code를 통해 언어 지정을 할 수 있습니다. model.generate(text="...",voice="afheart",langcode="a")model.generate(text="...", voice="af_heart", lang_code="a")와 같이 사용됩니다.
  • Qwen3-TTS: Alibaba의 최첨단 다국어 TTS 모델로, Base, CustomVoice, VoiceDesign 세 가지 변형을 제공합니다. CustomVoice 모델은 미리 정의된 음성에 감정 제어(instruct)를 추가할 수 있으며, VoiceDesign 모델은 텍스트 설명으로 새로운 음성을 생성할 수 있습니다.

STT 모델 예시:

  • Whisper: OpenAI의 견고한 STT 모델로, mlxaudio.stt.utils.transcribe("audio.wav",model=model)mlx_audio.stt.utils.transcribe("audio.wav", model=model)와 같이 오디오 파일의 텍스트를 추출합니다.
  • VibeVoice-ASR: Microsoft의 9B 파라미터 STT 모델로, 화자 분리(speaker diarization) 및 타임스탬프를 지원하며, 긴 오디오(long-form audio)에 대해서도 최적화되어 있습니다. model.generate(audio="meeting.wav",maxtokens=8192)model.generate(audio="meeting.wav", max_tokens=8192)를 통해 오디오를 텍스트로 변환하고, 결과에서 segments를 통해 타임스탬프와 화자 정보를 얻을 수 있습니다. 또한, stream_transcribe를 통해 실시간 스트리밍 전사를 지원하며, context 파라미터를 통해 특정 단어(hotwords)를 강조할 수 있습니다.

STS 모델 예시:

  • SAM-Audio: 텍스트 프롬프트를 사용하여 오디오에서 특정 소리(source separation)를 분리하는 데 사용됩니다. model.separate_long 메서드를 통해 지정된 설명에 해당하는 오디오를 추출하고, 잔여 오디오(residual)를 분리할 수 있습니다.
  • MossFormer2 SE: 음성 향상(speech enhancement) 모델로, 녹음된 음성에서 노이즈를 제거하는 데 사용됩니다. model.enhance("noisy_speech.wav")와 같이 사용하여 깨끗한 음성(clean.wav)을 얻을 수 있습니다.

요구 사항으로는 Python 3.10+, Apple Silicon Mac, MLX 프레임워크가 필요하며, MP3/FLAC 형식 저장을 위해서는 ffmpeg 설치가 권장됩니다. 라이선스는 MIT License를 따릅니다.