일반 소개
csm-mlx는 Apple에서 개발한 MLX 프레임워크를 기반으로 하며, 특히 Apple 실리콘에 최적화된 CSM(대화 음성 모델) 음성 대화 모델에 최적화되어 있습니다. 이 프로젝트를 통해 사용자는 간단한 방법으로 Apple 기기에서 효율적인 음성 생성 및 대화 기능을 실행할 수 있습니다. 개발자 센스텔라는 더 많은 사람들이 Apple 기기의 성능을 활용하고 음성 기술을 탐구할 수 있도록 하기 위해 2025년 3월 15일에 이 프로젝트를 공개했습니다. 이 프로젝트의 핵심은 자연스러운 음성 생성 및 대화 시나리오 처리를 지원하는 가볍고 사용하기 쉬운 도구를 제공하는 것입니다.

기능 목록
- 음성 생성: 텍스트를 입력한 후 자연스러운 사람의 음성 오디오를 생성합니다.
- 대화 맥락 지원: 이전 대화 내용을 기반으로 일관성 있는 음성 응답을 생성합니다.
- Apple 디바이스 최적화: MLX 프레임워크를 사용하여 Apple 실리콘에서 모델을 효율적으로 실행합니다.
- 오픈 소스 모델 로드: 허깅 페이스에서 사전 학습된 모델(예: csm-1b)을 다운로드할 수 있도록 지원합니다.
- 조정 가능한 매개변수: 생성 효과를 제어하기 위해 온도(temp) 및 최소 확률(min_p) 등의 샘플러 매개변수를 조정할 수 있습니다.
도움말 사용
설치 프로세스
로컬에서 csm-mlx를 사용하려면 먼저 몇 가지 종속 도구 및 환경을 설치해야 합니다. 자세한 단계는 다음과 같습니다:
- 환경 준비하기
- macOS를 사용 중이고 장치가 Apple 실리콘(예: M1, M2 칩)으로 구동되는지 확인하세요.
- Python 3.10 이상을 설치합니다. 다음 명령으로 Python을 설치할 수 있습니다.
brew install python@3.10
홈브루를 통한 설치. - Git 설치, 실행
brew install git
(이미 설치되어 있는 경우 건너뛸 수 있음).
- 복제 프로젝트
- 터미널을 열고 다음 명령을 입력하여 csm-mlx 프로젝트를 다운로드합니다:
git clone https://github.com/senstella/csm-mlx.git
- 프로젝트 폴더로 이동합니다:
cd csm-mlx
- 터미널을 열고 다음 명령을 입력하여 csm-mlx 프로젝트를 다운로드합니다:
- 가상 환경 만들기
- 프로젝트 디렉토리에 Python 가상 환경을 만듭니다:
python3.10 -m venv .venv
- 가상 환경을 활성화합니다:
source .venv/bin/activate
- 프로젝트 디렉토리에 Python 가상 환경을 만듭니다:
- 종속성 설치
- 프로젝트에 필요한 Python 패키지를 설치하고 실행합니다:
pip install -r requirements.txt
- 참고: MLX 프레임워크와 허깅 페이스가 설치되어 있는지 확인해야 합니다.
huggingface_hub
라이브러리를 사용하세요. 문제가 발생하면 별도의pip install mlx huggingface_hub
.
- 프로젝트에 필요한 Python 패키지를 설치하고 실행합니다:
- 모델 다운로드
- 사전 학습된 모델을 사용하는 CSM-MLX
csm-1b-mlx
. 다음 코드를 실행하면 자동으로 다운로드됩니다:python -c "from huggingface_hub import hf_hub_download; hf_hub_download(repo_id='senstella/csm-1b-mlx', filename='ckpt.safetensors')"
- 모델 파일은 로컬 캐시 디렉터리(일반적으로
~/.cache/huggingface/hub
).
- 사전 학습된 모델을 사용하는 CSM-MLX
사용 방법
설치가 완료되면 Python 스크립트를 사용하여 csm-mlx의 음성 생성 기능을 실행할 수 있습니다. 실행하는 단계는 다음과 같습니다:
기본 음성 생성
- 스크립트 작성
- 프로젝트 디렉터리에 다음과 같은 파일을 만듭니다.
generate_audio.py
를 클릭하고 다음 코드를 입력합니다:from csm_mlx import CSM, csm_1b, generate from mlx_lm.sample_utils import make_sampler from huggingface_hub import hf_hub_download # 初始化模型 csm = CSM(csm_1b()) weight = hf_hub_download(repo_id="senstella/csm-1b-mlx", filename="ckpt.safetensors") csm.load_weights(weight) # 生成音频 audio = generate( csm, text="你好,我是 csm-mlx。", speaker=0, context=[], max_audio_length_ms=10000, # 最大音频长度 10 秒 sampler=make_sampler(temp=0.5, min_p=0.1) ) # 保存音频 import audiofile audiofile.write("output.wav", audio, 22050) # 22050 是采样率
- 참고: 오디오를 저장하려면 다음을 설치해야 합니다.
audiofile
라이브러리를 실행하고pip install audiofile
.
- 프로젝트 디렉터리에 다음과 같은 파일을 만듭니다.
- 스크립트 실행
- 터미널에 입력합니다:
python generate_audio.py
- 이를 실행하면 현재 디렉터리에 다음이 생성됩니다.
output.wav
파일을 두 번 클릭하여 재생합니다.
- 터미널에 입력합니다:
대화 컨텍스트 추가하기
- 스크립트 지원 컨텍스트 수정하기
- 모델이 이전 대화에 기반하여 답장을 생성하도록 하려면
context
매개변수입니다. 수정 코드는 다음과 같습니다:from csm_mlx import CSM, csm_1b, generate, Segment import mlx.core as mx from huggingface_hub import hf_hub_download # 初始化模型 csm = CSM(csm_1b()) weight = hf_hub_download(repo_id="senstella/csm-1b-mlx", filename="ckpt.safetensors") csm.load_weights(weight) # 创建对话上下文 context = [ Segment(speaker=0, text="你好,今天天气怎么样?", audio=mx.array([...])), Segment(speaker=1, text="很好,阳光明媚。", audio=mx.array([...])) ] # 生成回复 audio = generate( csm, text="那我们出去走走吧!", speaker=0, context=context, max_audio_length_ms=5000 ) # 保存音频 import audiofile audiofile.write("reply.wav", audio, 22050)
- 주의:
audio=mx.array([...])
이전 오디오 데이터가 필요합니다. 그렇지 않은 경우 기본 생성을 사용하여 오디오를 먼저 생성한 다음 그 결과로 채울 수 있습니다.
- 모델이 이전 대화에 기반하여 답장을 생성하도록 하려면
- 실행 및 테스트
- 수행
python generate_audio.py
컨텍스트가 포함된 음성 파일 생성reply.wav
.
- 수행
매개변수화
- 온도(온도): 음성의 무작위성을 제어합니다. 값이 작을수록(예: 0.5) 음성이 더 안정적이고, 값이 클수록(예: 1.0) 음성이 더 다양해집니다.
- 최대 길이(최대_오디오_길이_ms)단위는 밀리초입니다(예: 5000은 5초를 의미).
- 조정 방법: in
make_sampler
어쩌면generate
함수를 사용하여 매개 변수를 변경한 다음 스크립트를 다시 실행합니다.
주의
- 오디오를 생성할 때 메모리 문제가 발생하는 경우, 오디오를 생성하는 동안
max_audio_length_ms
. - 모델을 처음 실행하려면 약 몇 GB 용량의 가중치 파일을 다운로드해야 하므로 인터넷 연결 상태가 양호한지 확인하세요.
애플리케이션 시나리오
- 교육 보조 자료
사용자는 csm-mlx를 사용하여 교육 콘텐츠에 대한 음성 설명을 생성할 수 있습니다. 예를 들어, 텍스트를 입력하고 듣기 연습을 위한 자연스러운 음성을 생성할 수 있습니다. - 가상 어시스턴트 개발
개발자는 csm-mlx를 사용하여 지능형 음성 어시스턴트를 구축할 수 있습니다. 대화 컨텍스트 기능과 결합하면 어시스턴트가 사용자의 말을 기반으로 일관된 응답을 생성할 수 있습니다. - 콘텐츠 제작
팟캐스트 제작자는 이 기능을 사용하여 스크립트를 음성으로 변환하고 오디오 클립을 빠르게 생성하며 녹음 시간을 절약할 수 있습니다.
QA
- csm-mlx는 중국어를 지원하나요?
예, 중국어 입력을 지원하며 중국어 음성을 생성합니다. 그러나 효과는 학습 데이터에 따라 다르므로 특정 발화를 테스트하여 품질을 확인하는 것이 좋습니다. - 하드 드라이브 공간은 얼마나 필요한가요?
모델 파일은 약 1~2GB이며 종속 라이브러리 및 생성된 파일을 위한 5GB의 공간이 추가됩니다. - Windows에서 작동하나요?
아니요, csm-mlx는 Apple 실리콘용으로 설계되었으며 MLX 프레임워크에 의존하며 현재 macOS만 지원합니다.
© 저작권 정책
기사 저작권 AI 공유 서클 모두 무단 복제하지 마세요.
관련 문서
댓글 없음...