Introdução geral
O Kimi-Audio é um modelo de base de áudio de código aberto desenvolvido pela Moonshot AI que se concentra na compreensão, geração e diálogo de áudio. Ele oferece suporte a uma ampla gama de tarefas de processamento de áudio, como reconhecimento de fala, P&R de áudio e reconhecimento de emoções na fala. O modelo foi pré-treinado em mais de 13 milhões de horas de dados de áudio e, combinado com uma arquitetura híbrida inovadora, apresenta bom desempenho em vários benchmarks de áudio. O kimi-Audio fornece pesos de modelo, código de inferência e um kit de ferramentas de avaliação para que os desenvolvedores possam integrá-lo facilmente em suas pesquisas e aplicativos. Ele é adequado para cenários que exigem processamento de áudio eficiente e recursos de diálogo, com documentação clara, suporte para implantação do Docker, uma comunidade ativa e atualizações contínuas.
Lista de funções
- Reconhecimento de fala (ASR): converte áudio em texto e oferece suporte à transcrição de fala em vários idiomas.
- Audio Question and Answer (AQA): responder às perguntas dos usuários com base no conteúdo de áudio e compreender o contexto do áudio.
- Audio Captioning (AAC): gera legendas ou descrições precisas para áudio.
- Speech Emotion Recognition (SER): analisa estados emocionais em áudio, como feliz ou triste.
- Sound Event/Scene Classification (SEC/ASC): identifica eventos ou cenas específicas no áudio, como sons de carros ou ambientes internos.
- Text-to-Speech (TTS): converte texto em fala natural, suporta vários tons.
- Conversão de voz (VC): altere o timbre ou o estilo da voz para gerar áudio personalizado.
- Diálogo de voz de ponta a ponta: suporta interação de voz contínua, simulando um diálogo natural.
- Geração de áudio em streaming: geração de áudio de baixa latência por meio de um decodificador de streaming em pedaços.
- Evaluation Toolkit: fornece ferramentas de avaliação padronizadas para facilitar a comparação do desempenho de diferentes modelos.
Usando a Ajuda
Processo de instalação
O Docker é recomendado para a implementação do Kimi-Audio para garantir um ambiente consistente e uma instalação fácil. Aqui estão as etapas detalhadas da instalação:
- armazém de clones
Execute o seguinte comando no terminal para obter o código e os submódulos do Kimi-Audio:git clone https://github.com/MoonshotAI/Kimi-Audio.git cd Kimi-Audio git submodule update --init --recursive
- Instalação de dependências
Instale as dependências do Python; recomenda-se o ambiente Python 3.10:pip install -r requirements.txt
Garantir a instalação
torch
responder cantandosoundfile
Se você tiver suporte a GPU, precisará instalar a versão CUDA do PyTorch. - Criação de uma imagem do Docker
Crie a imagem do Docker no diretório Kimi-Audio:docker build -t kimi-audio:v0.1 .
Ou use uma imagem oficial pré-construída:
docker pull moonshotai/kimi-audio:v0.1
- Execução de contêineres
Inicie o contêiner do Docker e monte o diretório de trabalho local:docker run -it -v $(pwd):/app kimi-audio:v0.1 bash
- Download dos pesos do modelo
A Kimi-Audio oferece dois modelos principais:Kimi-Audio-7B
(modelo básico) eKimi-Audio-7B-Instruct
(Instruções para o ajuste fino do modelo). Baixado de Hugging Face:moonshotai/Kimi-Audio-7B-Instruct
Adequado para uso direto.moonshotai/Kimi-Audio-7B
Adequado para ajuste fino adicional.
Use a CLI do Hugging Face para fazer login e download:
huggingface-cli login
O download do modelo é feito automaticamente no caminho especificado.
Uso
As principais funções do Kimi-Audio são implementadas por meio de chamadas à API do Python. A seguir, o fluxo de operação detalhado das funções principais:
1. reconhecimento de fala (ASR)
arquivo de áudio em texto. Código de amostra:
import soundfile as sf
from kimia_infer.api.kimia import KimiAudio
# 加载模型
model_path = "moonshotai/Kimi-Audio-7B-Instruct"
model = KimiAudio(model_path=model_path, load_detokenizer=True)
# 设置采样参数
sampling_params = {
"audio_temperature": 0.8,
"audio_top_k": 10,
"text_temperature": 0.0,
"text_top_k": 5,
"audio_repetition_penalty": 1.0,
"audio_repetition_window_size": 64,
"text_repetition_penalty": 1.0,
"text_repetition_window_size": 16,
}
# 准备输入
asr_audio_path = "asr_example.wav" # 确保文件存在
messages_asr = [
{"role": "user", "message_type": "text", "content": "请转录以下音频:"},
{"role": "user", "message_type": "audio", "content": asr_audio_path}
]
# 生成文本输出
_, text_output = model.generate(messages_asr, **sampling_params, output_type="text")
print("转录结果:", text_output)
procedimento::
- Prepare um arquivo de áudio no formato WAV.
- configurar
messages_asr
Especifique a tarefa como transcrição. - Execute o código e obtenha a saída de texto.
2. teste de áudio (AQA)
Responda às perguntas com base no áudio. Exemplo:
qa_audio_path = "qa_example.wav"
messages_qa = [
{"role": "user", "message_type": "text", "content": "音频中说了什么?"},
{"role": "user", "message_type": "audio", "content": qa_audio_path}
]
_, text_output = model.generate(messages_qa, **sampling_params, output_type="text")
print("回答:", text_output)
procedimento::
- Faça upload de um arquivo de áudio contendo informações.
- existir
messages_qa
Definir perguntas específicas no - Obter respostas textuais do modelo.
3. conversão de texto em fala (TTS)
Converte texto em saída de voz. Exemplo:
messages_tts = [
{"role": "user", "message_type": "text", "content": "请将以下文本转为语音:你好,欢迎使用 Kimi-Audio!"}
]
audio_output, _ = model.generate(messages_tts, **sampling_params, output_type="audio")
sf.write("output.wav", audio_output, samplerate=16000)
procedimento::
- Digite o texto a ser convertido.
- configurar
output_type="audio"
Obter dados de áudio. - fazer uso de
soundfile
Salvar como arquivo WAV.
4. diálogo de voz de ponta a ponta
Oferece suporte à interação contínua por voz. Exemplo:
messages_conversation = [
{"role": "user", "message_type": "audio", "content": "conversation_example.wav"},
{"role": "user", "message_type": "text", "content": "请回复一段语音,介绍你的功能。"}
]
audio_output, text_output = model.generate(messages_conversation, **sampling_params, output_type="both")
sf.write("response.wav", audio_output, samplerate=16000)
print("文本回复:", text_output)
procedimento::
- Fornece entrada de voz inicial e comandos de texto.
- configurar
output_type="both"
Obtenha respostas de voz e texto. - Salve a saída de áudio e visualize o texto.
5. uso do kit de ferramentas de avaliação
Cortesia da Kimi-Audio Kimi-Audio-Evalkit
Para avaliação do desempenho do modelo. Instalação:
git clone https://github.com/MoonshotAI/Kimi-Audio-Evalkit.git
cd Kimi-Audio-Evalkit
pip install -r requirements.txt
Avaliação operacional:
bash run_audio.sh --model Kimi-Audio --dataset all
procedimento::
- Faça o download do conjunto de dados para o diretório especificado.
- configurar
config.yaml
Especifica o caminho do conjunto de dados. - Execute o script para gerar o relatório de avaliação.
advertência
- Certifique-se de que o formato do arquivo de áudio seja WAV com uma taxa de amostragem de 16 kHz.
- O ambiente de GPU acelera a inferência e o CUDA 12.4 é recomendado.
- O carregamento de modelos requer uma grande quantidade de memória, sendo recomendado pelo menos 16 GB de memória gráfica.
- As implementações que não são do Docker exigem a instalação manual das dependências do sistema; consulte a documentação do GitHub.
cenário do aplicativo
- Atendimento inteligente ao cliente
O Kimi-Audio pode ser usado para criar sistemas de atendimento ao cliente para interação por voz. Ele transcreve as perguntas do usuário por meio do reconhecimento de voz, combina perguntas e respostas em áudio para fornecer respostas e gera respostas de voz naturais. Ele é adequado para plataformas de comércio eletrônico ou cenários de suporte técnico para aprimorar a experiência do usuário. - Auxílios educacionais
No aprendizado de idiomas, o Kimi-Audio transcreve a pronúncia do aluno, analisa a emoção e a entonação e fornece feedback. Ele também transcreve textos didáticos em fala para gerar materiais de audição, o que o torna adequado para plataformas de educação on-line. - criação de conteúdo
Os produtores de vídeo podem usar o Kimi-Audio para gerar legendas ou dublagem. Ele pode gerar automaticamente legendas precisas para vídeos ou converter scripts em fala com vários tons para simplificar a pós-produção. - registro médico
Os médicos podem inserir casos por voz, e o Kimi-Audio os transcreve em texto e classifica as emoções para ajudar no diagnóstico do estado emocional do paciente. Adequado para sistemas de informações hospitalares.
QA
- Quais idiomas são suportados pela Kimi-Audio?
O Kimi-Audio oferece suporte ao reconhecimento e à geração de fala em vários idiomas, especialmente em inglês e chinês. Para suporte a outros idiomas, consulte a documentação oficial. - Como otimizar a velocidade de raciocínio?
Para usar a aceleração de GPU, instaleflash-attn
biblioteca, conjuntotorch_dtype=torch.bfloat16
. Além disso, os ajustesaudio_top_k
responder cantandotext_top_k
Os parâmetros equilibram velocidade e qualidade. - O modelo oferece suporte ao diálogo em tempo real?
Sim, o decodificador de streaming da Kimi-Audio é compatível com a geração de áudio de baixa latência para interação de voz em tempo real. - Como faço para adicionar um conjunto de dados personalizado para avaliação?
existirKimi-Audio-Evalkit
Crie um arquivo JSONL na pastaindex
eaudio_path
responder cantandoquestion
campo. Modificarconfig.yaml
Basta especificar o caminho do conjunto de dados e executar o script de avaliação.