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

Список функций
- Генерация речи: генерируйте естественный звук человеческого голоса после ввода текста.
- Поддержка контекста разговора: генерируйте связные голосовые ответы на основе содержания предыдущих разговоров.
- Оптимизация устройств Apple: эффективное выполнение моделей на кремнии Apple с использованием фреймворка MLX.
- Загрузка моделей из открытых источников: поддержка загрузки предварительно обученных моделей с сайта Hugging Face (например, csm-1b).
- Регулируемые параметры: обеспечивает настройку параметров сэмплера, таких как температура (temp) и минимальная вероятность (min_p), для управления эффектом генерации.
Использование помощи
Процесс установки
Чтобы использовать csm-mlx локально, необходимо сначала установить некоторые зависимые инструменты и окружения. Ниже приведены подробные шаги:
- Подготовка среды
- Убедитесь, что вы используете macOS и что устройство работает на кремнии Apple (например, на чипах M1, M2).
- Установите Python 3.10 или более позднюю версию. Вы можете установить Python с помощью команды
brew install python@3.10
Установка через Homebrew. - Установите 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 и Hugging Face установлены.
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 с использованием предварительно обученных моделей
Как использовать
После установки вы можете запустить функцию генерации речи csm-mlx с помощью скрипта Python. Ниже приведены шаги для этого:
Основы генерации речи
- Написание сценариев
- Создайте файл в каталоге проекта, например
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
.
- осуществлять
параметризация
- Температура (temp): Управляет случайностью речи. Чем меньше значение (например, 0,5), тем стабильнее речь; чем больше значение (например, 1,0), тем разнообразнее речь.
- Максимальная длина (max_audio_length_ms): Единица измерения - миллисекунды, например, 5000 означает 5 секунд.
- Метод корректировки: в
make_sampler
возможноgenerate
чтобы изменить параметры, а затем повторно запустить сценарий.
предостережение
- Если при генерации звука у вас возникли проблемы с памятью, попробуйте уменьшить размер
max_audio_length_ms
. - Убедитесь, что у вас хорошее интернет-соединение, так как для первого запуска модели необходимо загрузить файл весов, размер которого составляет около нескольких Гб.
сценарий применения
- Учебные пособия
Пользователи могут использовать csm-mlx для создания речевых пояснений к учебному материалу. Например, введите текст и создайте естественную речь для аудирования. - Развитие виртуального помощника
Разработчики могут использовать csm-mlx для создания интеллектуальных голосовых помощников. В сочетании с функцией контекстного диалога помощник может генерировать согласованные ответы на основе слов пользователя. - создание контента
Продюсеры подкастов могут использовать его для преобразования сценариев в речь, быстрого создания аудиоклипов и экономии времени записи.
QA
- Поддерживает ли csm-mlx китайский язык?
Да, он поддерживает ввод китайского языка и генерирует китайскую речь. Однако эффект зависит от обучающих данных, и для подтверждения качества рекомендуется протестировать конкретные фразы. - Сколько места на жестком диске требуется?
Файлы модели занимают около 1-2 ГБ, плюс 5 ГБ места для зависимых библиотек и сгенерированных файлов. - Будет ли он работать под Windows?
Нет, csm-mlx предназначен для кремния Apple, опирается на фреймворк MLX и в настоящее время поддерживает только macOS.
© заявление об авторских правах
Авторское право на статью Круг обмена ИИ Пожалуйста, не воспроизводите без разрешения.
Похожие статьи
Нет комментариев...