AI个人学习
和实操指南
豆包Marscode1

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

综合介绍

csm-mlx 是基于苹果公司开发的 MLX 框架,专门为苹果芯片(Apple Silicon)优化了 CSM(Conversation Speech Model)语音对话模型。这个项目让用户可以用简单的方式在苹果设备上运行高效的语音生成和对话功能。开发者 senstella 在 2025 年 3 月 15 日发布此项目,目标是让更多人利用苹果设备的强大性能,探索语音技术。项目核心是提供一个轻量、易用的工具,支持生成自然语音和处理对话场景。

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


 

功能列表

  • 语音生成:输入文本后生成自然的人声音频。
  • 对话上下文支持:根据之前的对话内容生成连贯的语音回复。
  • 苹果设备优化:利用 MLX 框架在苹果硅片上高效运行模型。
  • 开源模型加载:支持从 Hugging Face 下载预训练模型(如 csm-1b)。
  • 可调参数:提供采样器参数调整,比如温度(temp)和最小概率(min_p),控制生成效果。

 

使用帮助

安装流程

要在本地使用 csm-mlx,需要先安装一些依赖工具和环境。以下是详细步骤:

  1. 准备环境
    • 确保你使用的是 macOS 系统,且设备搭载苹果硅片(如 M1、M2 芯片)。
    • 安装 Python 3.10 或以上版本。可以用命令 brew install python@3.10 通过 Homebrew 安装。
    • 安装 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 框架和 Hugging Face 的 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

参数调整

  • 温度(temp):控制语音的随机性。值越小(如 0.5),语音越稳定;值越大(如 1.0),语音更多样。
  • 最大长度(max_audio_length_ms):单位是毫秒,比如 5000 表示 5 秒。
  • 调整方法:在 make_sampler 或 generate 函数中修改参数,然后重新运行脚本。

注意事项

  • 如果生成音频时遇到内存问题,尝试减小 max_audio_length_ms
  • 确保网络连接正常,因为模型首次运行需要下载权重文件,大小约为几 GB。

 

应用场景

  1. 教育辅助
    用户可以用 csm-mlx 生成教学内容的语音讲解。比如,输入课文内容,生成自然语音后用于听力练习。
  2. 虚拟助手开发
    开发者可以利用 csm-mlx 打造智能语音助手。结合对话上下文功能,让助手根据用户的话生成连贯回复。
  3. 内容创作
    播客制作者可以用它将脚本转为语音,快速生成音频素材,节省录音时间。

 

QA

  1. csm-mlx 支持中文吗?
    是的,它支持中文输入和生成中文语音。但效果取决于训练数据,建议测试具体语句以确认质量。
  2. 需要多大硬盘空间?
    模型文件约 1-2 GB,加上依赖库和生成的文件,建议预留 5 GB 空间。
  3. 可以在 Windows 上运行吗?
    不行,csm-mlx 专为苹果硅片设计,依赖 MLX 框架,目前只支持 macOS。
未经允许不得转载:首席AI分享圈 » csm-mlx:苹果设备专用的 csm 语音生成模型

首席AI分享圈

首席AI分享圈专注于人工智能学习,提供全面的AI学习内容、AI工具和实操指导。我们的目标是通过高质量的内容和实践经验分享,帮助用户掌握AI技术,一起挖掘AI的无限潜能。无论您是AI初学者还是资深专家,这里都是您获取知识、提升技能、实现创新的理想之地。

联系我们
zh_CN简体中文