CSM-MLX: Apple 디바이스용 CSM 음성 생성 모델

최신 AI 리소스5개월 전에 게시 됨 AI 공유 서클
2.3K 00

일반 소개

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

csm-mlx:苹果设备专用的 csm 语音生成模型

 

기능 목록

  • 음성 생성: 텍스트를 입력한 후 자연스러운 사람의 음성 오디오를 생성합니다.
  • 대화 맥락 지원: 이전 대화 내용을 기반으로 일관성 있는 음성 응답을 생성합니다.
  • Apple 디바이스 최적화: MLX 프레임워크를 사용하여 Apple 실리콘에서 모델을 효율적으로 실행합니다.
  • 오픈 소스 모델 로드: 허깅 페이스에서 사전 학습된 모델(예: csm-1b)을 다운로드할 수 있도록 지원합니다.
  • 조정 가능한 매개변수: 생성 효과를 제어하기 위해 온도(temp) 및 최소 확률(min_p) 등의 샘플러 매개변수를 조정할 수 있습니다.

 

도움말 사용

설치 프로세스

로컬에서 csm-mlx를 사용하려면 먼저 몇 가지 종속 도구 및 환경을 설치해야 합니다. 자세한 단계는 다음과 같습니다:

  1. 환경 준비하기
    • macOS를 사용 중이고 장치가 Apple 실리콘(예: M1, M2 칩)으로 구동되는지 확인하세요.
    • Python 3.10 이상을 설치합니다. 다음 명령으로 Python을 설치할 수 있습니다. brew install python@3.10 홈브루를 통한 설치.
    • Git 설치, 실행 brew install git(이미 설치되어 있는 경우 건너뛸 수 있음).
  2. 복제 프로젝트
    • 터미널을 열고 다음 명령을 입력하여 csm-mlx 프로젝트를 다운로드합니다:
      git clone https://github.com/senstella/csm-mlx.git
      
    • 프로젝트 폴더로 이동합니다:
      cd csm-mlx
      
  3. 가상 환경 만들기
    • 프로젝트 디렉토리에 Python 가상 환경을 만듭니다:
      python3.10 -m venv .venv
      
    • 가상 환경을 활성화합니다:
      source .venv/bin/activate
      
  4. 종속성 설치
    • 프로젝트에 필요한 Python 패키지를 설치하고 실행합니다:
      pip install -r requirements.txt
      
    • 참고: MLX 프레임워크와 허깅 페이스가 설치되어 있는지 확인해야 합니다. huggingface_hub 라이브러리를 사용하세요. 문제가 발생하면 별도의 pip install mlx huggingface_hub.
  5. 모델 다운로드
    • 사전 학습된 모델을 사용하는 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).

사용 방법

설치가 완료되면 Python 스크립트를 사용하여 csm-mlx의 음성 생성 기능을 실행할 수 있습니다. 실행하는 단계는 다음과 같습니다:

기본 음성 생성

  1. 스크립트 작성
    • 프로젝트 디렉터리에 다음과 같은 파일을 만듭니다. 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.
  2. 스크립트 실행
    • 터미널에 입력합니다:
      python generate_audio.py
      
    • 이를 실행하면 현재 디렉터리에 다음이 생성됩니다. output.wav 파일을 두 번 클릭하여 재생합니다.

대화 컨텍스트 추가하기

  1. 스크립트 지원 컨텍스트 수정하기
    • 모델이 이전 대화에 기반하여 답장을 생성하도록 하려면 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([...]) 이전 오디오 데이터가 필요합니다. 그렇지 않은 경우 기본 생성을 사용하여 오디오를 먼저 생성한 다음 그 결과로 채울 수 있습니다.
  2. 실행 및 테스트
    • 수행 python generate_audio.py컨텍스트가 포함된 음성 파일 생성 reply.wav.

매개변수화

  • 온도(온도): 음성의 무작위성을 제어합니다. 값이 작을수록(예: 0.5) 음성이 더 안정적이고, 값이 클수록(예: 1.0) 음성이 더 다양해집니다.
  • 최대 길이(최대_오디오_길이_ms)단위는 밀리초입니다(예: 5000은 5초를 의미).
  • 조정 방법: in make_sampler 어쩌면 generate 함수를 사용하여 매개 변수를 변경한 다음 스크립트를 다시 실행합니다.

주의

  • 오디오를 생성할 때 메모리 문제가 발생하는 경우, 오디오를 생성하는 동안 max_audio_length_ms.
  • 모델을 처음 실행하려면 약 몇 GB 용량의 가중치 파일을 다운로드해야 하므로 인터넷 연결 상태가 양호한지 확인하세요.

 

애플리케이션 시나리오

  1. 교육 보조 자료
    사용자는 csm-mlx를 사용하여 교육 콘텐츠에 대한 음성 설명을 생성할 수 있습니다. 예를 들어, 텍스트를 입력하고 듣기 연습을 위한 자연스러운 음성을 생성할 수 있습니다.
  2. 가상 어시스턴트 개발
    개발자는 csm-mlx를 사용하여 지능형 음성 어시스턴트를 구축할 수 있습니다. 대화 컨텍스트 기능과 결합하면 어시스턴트가 사용자의 말을 기반으로 일관된 응답을 생성할 수 있습니다.
  3. 콘텐츠 제작
    팟캐스트 제작자는 이 기능을 사용하여 스크립트를 음성으로 변환하고 오디오 클립을 빠르게 생성하며 녹음 시간을 절약할 수 있습니다.

 

QA

  1. csm-mlx는 중국어를 지원하나요?
    예, 중국어 입력을 지원하며 중국어 음성을 생성합니다. 그러나 효과는 학습 데이터에 따라 다르므로 특정 발화를 테스트하여 품질을 확인하는 것이 좋습니다.
  2. 하드 드라이브 공간은 얼마나 필요한가요?
    모델 파일은 약 1~2GB이며 종속 라이브러리 및 생성된 파일을 위한 5GB의 공간이 추가됩니다.
  3. Windows에서 작동하나요?
    아니요, csm-mlx는 Apple 실리콘용으로 설계되었으며 MLX 프레임워크에 의존하며 현재 macOS만 지원합니다.
© 저작권 정책

관련 문서

댓글 없음

댓글에 참여하려면 로그인해야 합니다!
지금 로그인
없음
댓글 없음...