csm-mlx: модель генерации речи csm для устройств Apple

Общее введение

csm-mlx основан на фреймворке MLX, разработанном компанией Apple и оптимизированном для речевой диалоговой модели CSM (Conversation Speech Model) специально для Apple Silicon. Этот проект позволяет пользователям запускать эффективные функции генерации речи и диалога на устройствах Apple простым способом. Разработчик senstella выпустил этот проект 15 марта 2025 года с целью заставить больше людей использовать возможности устройств Apple и изучить речевые технологии. Суть проекта заключается в создании легкого и простого в использовании инструмента, поддерживающего генерацию естественной речи и обработку диалоговых сценариев.

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

 

Список функций

  • Генерация речи: генерируйте естественный звук человеческого голоса после ввода текста.
  • Поддержка контекста разговора: генерируйте связные голосовые ответы на основе содержания предыдущих разговоров.
  • Оптимизация устройств Apple: эффективное выполнение моделей на кремнии Apple с использованием фреймворка MLX.
  • Загрузка моделей из открытых источников: поддержка загрузки предварительно обученных моделей с сайта Hugging Face (например, csm-1b).
  • Регулируемые параметры: обеспечивает настройку параметров сэмплера, таких как температура (temp) и минимальная вероятность (min_p), для управления эффектом генерации.

 

Использование помощи

Процесс установки

Чтобы использовать csm-mlx локально, необходимо сначала установить некоторые зависимые инструменты и окружения. Ниже приведены подробные шаги:

  1. Подготовка среды
    • Убедитесь, что вы используете macOS и что устройство работает на кремнии Apple (например, на чипах M1, M2).
    • Установите Python 3.10 или более позднюю версию. Вы можете установить Python с помощью команды 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).

Как использовать

После установки вы можете запустить функцию генерации речи csm-mlx с помощью скрипта Python. Ниже приведены шаги для этого:

Основы генерации речи

  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.
  • Убедитесь, что у вас хорошее интернет-соединение, так как для первого запуска модели необходимо загрузить файл весов, размер которого составляет около нескольких Гб.

 

сценарий применения

  1. Учебные пособия
    Пользователи могут использовать csm-mlx для создания речевых пояснений к учебному материалу. Например, введите текст и создайте естественную речь для аудирования.
  2. Развитие виртуального помощника
    Разработчики могут использовать csm-mlx для создания интеллектуальных голосовых помощников. В сочетании с функцией контекстного диалога помощник может генерировать согласованные ответы на основе слов пользователя.
  3. создание контента
    Продюсеры подкастов могут использовать его для преобразования сценариев в речь, быстрого создания аудиоклипов и экономии времени записи.

 

QA

  1. Поддерживает ли csm-mlx китайский язык?
    Да, он поддерживает ввод китайского языка и генерирует китайскую речь. Однако эффект зависит от обучающих данных, и для подтверждения качества рекомендуется протестировать конкретные фразы.
  2. Сколько места на жестком диске требуется?
    Файлы модели занимают около 1-2 ГБ, плюс 5 ГБ места для зависимых библиотек и сгенерированных файлов.
  3. Будет ли он работать под Windows?
    Нет, csm-mlx предназначен для кремния Apple, опирается на фреймворк MLX и в настоящее время поддерживает только macOS.
© заявление об авторских правах

Похожие статьи

Нет комментариев

Вы должны войти в систему, чтобы участвовать в комментариях!
Войти сейчас
нет
Нет комментариев...