MLX Audio 0.6.2가 음성을 만들고 알아듣거나 음성으로 대화하는 데 쓸 모델 선택지를 늘렸다. 애플 실리콘에서 음성 기능을 개발하는 사람은 새 모델을 같은 라이브러리로 불러오고, 음성을 글로 옮기는 전사 작업에는 선택형 가속 기능을 적용할 수 있다.
1. 합성부터 다국어 인식까지 세 계열 추가
Ming 3.0은 음성 인식·합성·대화를 아우르는 모델 묶음이다. 인식 모델은 영어와 중국어를 지원한다. 대화 모델은 소리를 이해하는 부분과 음성을 만드는 부분을 결합하며, 음성 출력이 필요한 요청에서만 음성 생성부를 불러온다.
IBM Granite Speech 5.0 2B는 음성 인식과 번역을 제공한다. 전사 대상은 영어·프랑스어·독일어·스페인어·포르투갈어·일본어이며, 영어 음성을 이탈리아어와 중국어로도 번역한다. 문장 부호와 언어 힌트, 최대 2,000개 키워드 지정도 지원한다.
Fermion Research의 Phonon 2.5는 25개 유럽 언어를 자동 판별해 인식한다. 영어 전용 변형과 이전 Phonon 2도 같은 API로 불러오며, 별도의 Fermion 실행 환경은 필요 없다.
2. Granite는 초안을 검토하는 방식으로 전사 가속
Granite의 추측 디코딩은 음성 처리부가 만든 글 초안을 언어 모델이 한 묶음씩 검토해 일치하는 앞부분을 채택하는 방식이다. 한 글 조각씩 생성하는 대신 여러 조각을 함께 확인한다. 기본값은 꺼져 있고, 온도 0과 반복 억제 미사용, 모델 상태를 저장한 파일인 체크포인트의 보조 파일이 실행 조건이다.
문서의 예시는 원래 언어로 전사하면서 추측 디코딩을 켜고 초안을 16토큰으로 지정한다.
mlx_audio.stt.generate \
--model ibm-granite/granite-speech-5.0-2b \
--audio audio.wav --output-path transcript \
--gen-kwargs '{"language": null, "speculative": true, "num_draft_tokens": 16}'프로젝트에 추가된 문서의 로컬 측정에서 대표 입력을 추렸다. 예시와 달리 초안은 32토큰이며, 각 호출은 음성에서 분석용 정보를 뽑는 특징 추출부터 텍스트 변환까지 포함한다. 입력은 공개 영어 음성 시험 자료와 이를 이어 붙인 녹음, IBM의 다국어 샘플이다.
표: Granite Speech 5.0 2B의 16비트 부동소수점 형식인 BF16 전사 시간
조건: Apple M5 Max, 128 GB 통합 메모리, MLX 0.32.4, BF16, 워밍업 후 5회 호출 측정값의 가운데 값인 중앙값, 기본·디코딩 GPU 작업 완료를 맞추는 스트림 동기화, 추측은 32토큰 초안·기본 전사 프롬프트, 음성 입출력·가중치 로딩 제외
단위: 시간은 초, 속도 향상은 배
| 음성 입력 | 표준 시간 | 추측 시간 | 속도 향상 |
|---|---|---|---|
| 5.9초 | 0.241 | 0.090 | 2.67 |
| 24.9초, 영어·프랑스어 | 0.830 | 0.230 | 3.61 |
| 109.8초, 이어 붙인 발화 | 3.168 | 2.879 | 1.10 |
문서 기준 속도 향상은 24.9초 입력에서 3.61배, 109.8초 입력에서 1.10배로 입력별 효과가 달랐다.
3. 8비트에서도 입력에 따라 달라지는 이득
같은 문서는 8비트 체크포인트도 측정했다. 아래는 같은 입력과 절차에서 표준 실행과 추측 실행을 비교한 결과다.
표: Granite Speech 5.0 2B의 8비트 전사 시간
조건: Apple M5 Max, 128 GB 통합 메모리, MLX 0.32.4, 8비트, 워밍업 후 5회 호출 중앙값, 기본·디코딩 GPU 스트림 동기화, 추측은 32토큰 초안·기본 전사 프롬프트, 음성 입출력·가중치 로딩 제외
단위: 시간은 초, 속도 향상은 배
| 음성 입력 | 표준 시간 | 추측 시간 | 속도 향상 |
|---|---|---|---|
| 5.9초 | 0.215 | 0.097 | 2.23 |
| 24.9초, 영어·프랑스어 | 0.680 | 0.244 | 2.78 |
| 109.8초, 이어 붙인 발화 | 2.512 | 2.518 | 1.00 |
8비트 결과는 표준 방식과 전사문이 모두 일치했다. BF16은 62.5초 입력에서 고유명사 표기 하나가 바뀌었지만, 참조 전사문과 다른 단어를 세는 단어 오류는 두 방식과 두 정밀도 모두 33/522(6.32%)였다. 문서는 겹치는 입력을 포함한 이 수치를 변경 전후 동작 점검에 사용했다.
이익과 비용은 작업에 따라 갈린다. 초안이 잘 맞는 전사에서는 검토를 묶어 처리해 시간을 줄이지만, 같은 24.9초 샘플을 프랑스어로 번역할 때는 문서 기준 추측 방식이 약 14~15% 더 오래 걸렸다. 번역에서는 초안이 원래 말한 언어로 작성돼 목표 문장과 맞지 않을 수 있기 때문이다.
4. Ming은 조각별 출력, Phonon은 캐시 재사용
별도 Ming 합성 경로인 Ming-3.0-tts-0.5B 계열은 스트리밍을 켜면 문장 조각의 음성이 완성되는 대로 반환하도록 수정됐다. 문단 전체가 끝나기를 기다리던 동작을 바꿨다.
Phonon 2.5는 처음 불러올 때 압축 파일을 내려받아 파일 손상을 확인하는 값인 체크섬을 확인하고 MLX 체크포인트를 캐시에 푼다. 첫 실행에서 다운로드와 압축 해제 비용을 치른 뒤 재사용 데이터를 임시 보관하는 공간인 캐시를 재사용한다.
5. 대화 모델 실행에 필요한 패키지도 기본 설치에 포함
이번 버전은 transformers[chat-template]을 요구하고 jinja2 최소 버전을 3.1.6으로 지정했다. 대화 내용을 모델 입력 형식으로 바꾸는 패키지를 기본 설치에 넣어, Ming 음성 대화 실행에 필요한 의존성 누락을 해결했다.
MLX Audio 0.6.2의 실용적 가치는 음성 모델 선택지를 넓히면서 전사 가속을 작업별로 골라 쓸 수 있게 한 데 있다.
