Aprendizagem pessoal com IA
e orientação prática
Beanbag Marscode1

csm-mlx: modelo de geração de fala csm para dispositivos Apple

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.

csm-mlx: modelo de geração de fala csm para dispositivos Apple-1


 

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:

  1. 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).
  2. 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
      
  3. 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
      
  4. 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 um pip install mlx huggingface_hub.
  5. 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).

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

  1. Escrever roteiros
    • Crie um arquivo no diretório do projeto, como generate_audio.pyDigite 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 biblioteca pip install audiofile.
  2. 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.

Adição de contexto de diálogo

  1. 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.
  2. Executar e testar
    • realizar python generate_audio.pyGerar arquivos de fala com contexto reply.wav.

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 talvez gerar 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

  1. 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.
  2. 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.
  3. 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

  1. 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.
  2. 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.
  3. 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.
Não pode ser reproduzido sem permissão:Chefe do Círculo de Compartilhamento de IA " csm-mlx: modelo de geração de fala csm para dispositivos Apple

Chefe do Círculo de Compartilhamento de IA

O Chief AI Sharing Circle se concentra no aprendizado de IA, fornecendo conteúdo abrangente de aprendizado de IA, ferramentas de IA e orientação prática. Nosso objetivo é ajudar os usuários a dominar a tecnologia de IA e explorar juntos o potencial ilimitado da IA por meio de conteúdo de alta qualidade e compartilhamento de experiências práticas. Seja você um iniciante em IA ou um especialista sênior, este é o lugar ideal para adquirir conhecimento, aprimorar suas habilidades e realizar inovações.

Entre em contato conosco
pt_BRPortuguês do Brasil