Breeze TTS 2

audio_tokenizer/LICENSE · Apache-2.0 · Qwen/Qwen3-TTS-Tokenizer-12Hz

Apple M5 Pro · 48 GiB · TTFA / RTF / RSS

2026-10-30 · en · 8bit=3.20 s · bf16=3.20 s · seed=42 · CFG=4 · firstChunkFrames=3 · chunkFrames=25 · MLX cache=2 GiB · warm=3

MLXTTFA p50RTFRSS (GiB)최대 물리 메모리 사용량 (GiB)
8bit178 ms0.5353.927.23
bf16272 ms0.8686.069.22

WAV=45 · distinct=11 · 8bit PCM SHA256=baseline · unit=1933 · skipped=42 · E2E=15 · Qwen3-ASR-0.6B-MLX-4bit

BF16 RTF는 짧은 문장에서 0.868(기준: 1.258), 9.20초 문단에서 0.853(기준: 1.280)입니다. 첫 청크가 한 프레임이면 첫 PCM이 138 ms에 도착합니다. 최종 11개 고유 파형 모두 독립 ASR에서 정규화 WER/CER가 0이며, 8비트 기본 청크 출력은 기준과 바이트 단위로 같습니다. BF16 반올림은 같은 시드의 음성을 바꿀 수 있습니다. 로드 전에 SPEECH_SWIFT_BREEZE_GEMV=0을 설정하면 원래 투영 경로와 비교할 수 있습니다.

재생 시작을 앞당기려면 첫 청크 한 프레임, 후속 청크 두 프레임, MLX 캐시 예산 1 GiB를 사용하세요. 9.04초 8비트 문단에서 CLI 사전 버퍼는 약 190 ms에 준비되며 기록된 청크 도착 시점상 추가 버퍼링은 필요하지 않았습니다. 렌더 콜백과 출력 장치 지연은 제외합니다.

2026-10-30 · 8bit · 9.04 s · firstChunkFrames=1 · chunkFrames=2 · MLX cache=1 GiB · PCM=103 ms · buffer=190 ms · RTF=0.761 · peak=6.10 GiB

speech speak "The quick brown fox jumps over the lazy dog." --engine breeze \
  --instruct "A clear, calm English narrator." --first-chunk-frames 1 \
  --chunk-frames 2 --breeze-cache-limit-mib 1024 --stream -o fast-start.wav

TTFA는 모델 로드와 스피커 재생을 제외합니다. 결과는 하드웨어, 텍스트, 설정에 따라 달라집니다. 공유 모델 정책은 재사용 MLX 캐시를 2 GiB와 물리 메모리의 4분의 1 중 작은 값으로 제한하며 앱의 더 낮은 예산을 따릅니다. --breeze-cache-limit-mib는 프로세스 전체 상한을 낮출 수 있고 0은 재사용 캐시를 끕니다. 활성 모델 텐서는 제한하지 않습니다.

영어·중국어 음성 합성, 음성 디자인, 참조 음성 복제 및 연출, 스트리밍 오디오 지원 (MLX BF16/8-bit, 24 kHz; 연구·비상업용 라이선스).

BreezeTTS · 24,000 Hz · 16 × 2,048 · 80 ms · MLX BF16 / 8-bit

사용법

speech speak "The quick brown fox jumps over the lazy dog." --engine breeze \
  --instruct "A clear, calm English narrator." --stream -o design.wav

speech speak "The weather is beautiful today." --engine breeze \
  --voice-sample reference.wav --breeze-reference-text "Exact transcript." \
  --breeze-seed 42 -o clone.wav

speech speak "We need to discuss what happened." --engine breeze \
  --voice-sample reference.wav --breeze-reference-text "Exact transcript." \
  --instruct "Speak slowly, with a serious tone." --stream -o directed.wav

Swift API

import BreezeTTS

let model = try await BreezeTTSModel.fromPretrained()
let samples = try await model.generate(
    text: "The quick brown fox jumps over the lazy dog.",
    instruction: "A clear, calm English narrator.")

try await model.generateStreaming(text: "Hello, world!", instruction: "A warm voice.") { chunk in
    print(chunk.sampleRate, chunk.samples.count, chunk.isFinal)
}

옵션

라이선스

Derived from Breeze TTS 2 by BreezeBlue and licensed for research and non-commercial use only.

BreezeBlue Research and Non-Commercial License · Breeze TTS 2 MLX 8-bit · Breeze TTS 2 MLX BF16

소스 및 변환

speech-swift / BreezeTTS · export_breeze_mlx.py · WER / CER / RSS / TTFA / RTF