Introdução geral
O csm-mlx é baseado na estrutura MLX desenvolvida pela Apple e otimizada para o modelo de diálogo de fala CSM (Conversation Speech Model) especificamente para o Apple Silicon. Esse projeto permite que os usuários executem funções eficientes de geração de fala e diálogo em dispositivos Apple de forma simples. O desenvolvedor senstella lançou esse projeto em 15 de março de 2025 com o objetivo de fazer com que mais pessoas aproveitem o poder dos dispositivos Apple e explorem a tecnologia de fala. O núcleo do projeto é fornecer uma ferramenta leve e fácil de usar que ofereça suporte à geração de fala natural e ao processamento de cenários de diálogo.
Lista de funções
- Geração de fala: gera áudio de voz humana natural após a entrada de texto.
- Suporte ao contexto da conversa: gere respostas de voz coerentes com base no conteúdo de conversas anteriores.
- Otimização de dispositivos Apple: execução eficiente de modelos no silício da Apple usando a estrutura MLX.
- Carregamento de modelo de código aberto: suporte para download de modelos pré-treinados da Hugging Face (por exemplo, csm-1b).
- Parâmetros ajustáveis: fornece ajustes de parâmetros do amostrador, como temperatura (temp) e probabilidade mínima (min_p), para controlar o efeito de geração.
Usando a Ajuda
Processo de instalação
Para usar o csm-mlx localmente, primeiro você precisa instalar algumas ferramentas e ambientes dependentes. Veja a seguir as etapas detalhadas:
- Preparação do ambiente
- Verifique se você está usando o macOS e se o dispositivo é alimentado por silício da Apple (por exemplo, chips M1, M2).
- Instale o Python 3.10 ou posterior. Você pode instalar o Python com o comando
brew install python@3.10
Instalação via Homebrew. - Instale o Git, execute
brew install git
(pode ser ignorado se já estiver instalado).
- projeto de clonagem
- Abra um terminal e digite o seguinte comando para fazer o download do projeto csm-mlx:
git clone https://github.com/senstella/csm-mlx.git
- Vá para a pasta do projeto:
cd csm-mlx
- Abra um terminal e digite o seguinte comando para fazer o download do projeto csm-mlx:
- Criação de um ambiente virtual
- Crie um ambiente virtual Python no diretório do projeto:
python3.10 -m venv .venv
- Ativar o ambiente virtual:
fonte .venv/bin/activate
- Crie um ambiente virtual Python no diretório do projeto:
- Instalação de dependências
- Instale os pacotes Python necessários para o projeto e execute-o:
pip install -r requirements.txt
- Observação: Você precisa garantir que a estrutura do MLX e o Hugging Face estejam instalados.
huggingface_hub
biblioteca. Se tiver problemas, você pode executar umpip install mlx huggingface_hub
.
- Instale os pacotes Python necessários para o projeto e execute-o:
- Modelos para download
- csm-mlx usando modelos pré-treinados
csm-1b-mlx
. Execute o código a seguir para fazer o download automaticamente:python -c "from huggingface_hub import hf_hub_download; hf_hub_download(repo_id='senstella/csm-1b-mlx', filename='ckpt.safetensors')"
- Os arquivos de modelo são salvos no diretório de cache local (geralmente o diretório
~/.cache/huggingface/hub
).
- csm-mlx usando modelos pré-treinados
Como usar
Depois de instalado, você pode executar a função de geração de fala do csm-mlx com um script Python. Aqui estão as etapas para fazer isso:
Geração básica de fala
- Escrever roteiros
- Crie um arquivo no diretório do projeto, como
generate_audio.py
Digite o seguinte código:from csm_mlx import CSM, csm_1b, generate from mlx_lm.sample_utils import make_sampler from huggingface_hub import hf_hub_download Modelo de inicialização # csm = CSM(csm_1b()) weights = hf_hub_download(repo_id="senstella/csm-1b-mlx", filename="ckpt.safetensors") csm.load_weights(weight) # Gerar áudio audio = generate( csm. text="Olá, aqui é csm-mlx.", speaker=0, context=[], max_audio_length_ms=10000, # max_audio_length 10 segundos sampler=make_sampler(temp=0.5, min_p=0.1) ) # salvar áudio importar audiofile audiofile.write("output.wav", audio, 22050) # 22050 é a taxa de amostragem
- Observação: O salvamento de áudio requer a instalação do
arquivo de áudio
execute a bibliotecapip install audiofile
.
- Crie um arquivo no diretório do projeto, como
- Executando scripts
- Digite-o no terminal:
python generate_audio.py
- Sua execução gera o seguinte no diretório atual
output.wav
clique duas vezes nele para reproduzi-lo.
- Digite-o no terminal:
Adição de contexto de diálogo
- Modificação do contexto de suporte a scripts
- Se quiser que o modelo gere respostas com base em diálogos anteriores, você pode adicionar a opção
contexto
Parâmetro. O código de modificação é o seguinte:from csm_mlx import CSM, csm_1b, generate, Segment import mlx.core as mx from huggingface_hub import hf_hub_download # Inicialização do modelo csm = CSM(csm_1b()) weights = hf_hub_download(repo_id="senstella/csm-1b-mlx", filename="ckpt.safetensors") csm.load_weights(weight) # Criar o contexto de diálogo contexto = [ Segment(speaker=0, text="Hello, how's the weather today?" , audio=mx.array([...])) , Segment(speaker=1, text="It's great, the sun is shining." , audio=mx.array([...])) ] # Gerar uma resposta audio = generate( csm. text="Vamos dar uma volta então!" , speaker=0, context=context, max_audio_length_ms=5000 ) # Salvar o áudio importar audiofile audiofile.write("reply.wav", audio, 22050)
- Atenção:
audio=mx.array([...])
Requer dados de áudio anteriores. Caso contrário, você pode gerar o áudio usando a geração básica primeiro e depois preenchê-lo com seus resultados.
- Se quiser que o modelo gere respostas com base em diálogos anteriores, você pode adicionar a opção
- Executar e testar
- realizar
python generate_audio.py
Gerar arquivos de fala com contextoreply.wav
.
- realizar
parametrização
- Temperatura (temp)Randomização: controla a aleatoriedade da fala. Quanto menor o valor (por exemplo, 0,5), mais estável será a fala; quanto maior o valor (por exemplo, 1,0), mais variada será a fala.
- Duração máxima (max_audio_length_ms)A unidade é milissegundos, por exemplo, 5000 significa 5 segundos.
- Método de ajuste: em
make_sampler
talvezgerar
para alterar os parâmetros e, em seguida, executar novamente o script.
advertência
- Se estiver tendo problemas de memória ao gerar áudio, tente reduzir o tamanho do arquivo
max_audio_length_ms
. - Certifique-se de ter uma boa conexão com a Internet, pois a primeira execução do modelo requer o download do arquivo de pesos, que tem cerca de alguns GB de tamanho.
cenário do aplicativo
- Auxílios educacionais
Os usuários podem usar o csm-mlx para gerar explicações de fala para o conteúdo de ensino. Por exemplo, insira o texto e gere uma fala natural para praticar a audição. - Desenvolvimento de assistente virtual
Os desenvolvedores podem usar o csm-mlx para criar assistentes de voz inteligentes. Combinado com o recurso de contexto de diálogo, o assistente pode gerar respostas coerentes com base nas palavras do usuário. - criação de conteúdo
Os produtores de podcast podem usá-lo para converter scripts em fala, gerar rapidamente clipes de áudio e economizar tempo de gravação.
QA
- O csm-mlx é compatível com o idioma chinês?
Sim, ele suporta entrada em chinês e gera fala em chinês. No entanto, o efeito depende dos dados de treinamento, e é recomendável testar expressões específicas para confirmar a qualidade. - Quanto espaço é necessário no disco rígido?
Os arquivos do modelo têm cerca de 1 a 2 GB, além de 5 GB de espaço para bibliotecas dependentes e arquivos gerados. - Ele funcionará no Windows?
Não, o csm-mlx foi projetado para o silício da Apple, depende da estrutura MLX e, no momento, é compatível apenas com o macOS.