Kimi-Audio: modelo base de procesamiento de audio y diálogo de código abierto

吐司AI

Introducción general

Kimi-Audio es un modelo de base de audio de código abierto desarrollado por Moonshot AI que se centra en la comprensión, generación y diálogo de audio. Admite una amplia gama de tareas de procesamiento de audio, como reconocimiento del habla, preguntas y respuestas de audio y reconocimiento de emociones del habla. El modelo ha sido preentrenado en más de 13 millones de horas de datos de audio y, combinado con una innovadora arquitectura híbrida, obtiene buenos resultados en múltiples pruebas de referencia de audio. kimi-Audio proporciona pesos de modelo, código de inferencia y un conjunto de herramientas de evaluación para que los desarrolladores puedan integrarlo fácilmente en sus investigaciones y aplicaciones. Es adecuado para escenarios que requieren un procesamiento de audio eficiente y capacidades de diálogo, con documentación clara, soporte para el despliegue de Docker, una comunidad activa y actualizaciones continuas.

Kimi-Audio:开源音频处理与对话基础模型

 

Lista de funciones

  • Reconocimiento de voz (ASR): convierte audio en texto y admite la transcripción de voz en varios idiomas.
  • Preguntas y respuestas sonoras (AQA): responder a las preguntas de los usuarios a partir del contenido sonoro y comprender el contexto sonoro.
  • Subtítulos de audio (AAC): genera subtítulos o descripciones precisas para el audio.
  • Reconocimiento de Emociones del Habla (SER): analiza estados emocionales en audio, como feliz o triste.
  • Clasificación de eventos sonoros/escenas (SEC/ASC): identifica eventos o escenas específicos en el audio, como sonidos de coches o ambientes interiores.
  • Texto a voz (TTS): convierte el texto en voz natural, admite varios tonos.
  • Conversión de voz (VC): cambia el timbre o el estilo de la voz para generar un audio personalizado.
  • Diálogo de voz de extremo a extremo: admite la interacción de voz continua, simulando un diálogo natural.
  • Generación de audio en streaming: generación de audio de baja latencia mediante un descodificador de streaming por trozos.
  • Conjunto de herramientas de evaluación: proporciona herramientas de evaluación normalizadas para facilitar la comparación del rendimiento de distintos modelos.

 

Utilizar la ayuda

Proceso de instalación

Se recomienda Docker para el despliegue de Kimi-Audio para asegurar un entorno consistente y una fácil instalación. Aquí están los pasos detallados de instalación:

  1. almacén de clones
    Ejecute el siguiente comando en el terminal para obtener el código y los submódulos de Kimi-Audio:

    git clone https://github.com/MoonshotAI/Kimi-Audio.git
    cd Kimi-Audio
    git submodule update --init --recursive
  1. Instalación de dependencias
    Instale las dependencias de Python, se recomienda el entorno Python 3.10:

    pip install -r requirements.txt
    

    Garantizar la instalación torch responder cantando soundfileSi tienes soporte para GPU, necesitas instalar la versión CUDA de PyTorch.

  2. Creación de una imagen Docker
    Construye la imagen Docker en el directorio Kimi-Audio:

    docker build -t kimi-audio:v0.1 .
    

    O utiliza una imagen oficial preconstruida:

    docker pull moonshotai/kimi-audio:v0.1
    
  3. Contenedores en funcionamiento
    Inicie el contenedor Docker y monte el directorio de trabajo local:

    docker run -it -v $(pwd):/app kimi-audio:v0.1 bash
    
  4. Descargar modelos de pesos
    Kimi-Audio ofrece dos modelos principales:Kimi-Audio-7B(modelo base) y Kimi-Audio-7B-Instruct(Instrucciones para afinar el modelo). Descargado de Hugging Face:

    • moonshotai/Kimi-Audio-7B-InstructAdecuado para uso directo.
    • moonshotai/Kimi-Audio-7BAdecuado para un ajuste más preciso.
      Utilice la CLI de Hugging Face para iniciar sesión y descargar:
    huggingface-cli login
    

    El modelo se descarga automáticamente en la ruta especificada.

Utilización

Las funciones principales de Kimi-Audio se implementan a través de llamadas a la API de Python. A continuación se detalla el flujo de operación de las funciones principales:

1. Reconocimiento de voz (ASR)

archivo de audio en texto. Código de ejemplo:

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)

procedimiento::

  • Prepara un archivo de audio en formato WAV.
  • establecer messages_asr Especifique la tarea como transcripción.
  • Ejecute el código y obtenga la salida de texto.

2. Audio Quiz (AQA)

Responde a las preguntas basándote en el audio. Ejemplo:

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)

procedimiento::

  • Sube un archivo de audio con información.
  • existe messages_qa Establezca preguntas específicas en el
  • Obtener respuestas textuales del modelo.

3. Texto a voz (TTS)

Convierte el texto en voz. Ejemplo:

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)

procedimiento::

  • Introduzca el texto que desea convertir.
  • establecer output_type="audio" Obtener datos de audio.
  • utilizar soundfile Guardar como archivo WAV.

4. Diálogo vocal de extremo a extremo

Admite la interacción vocal continua. Ejemplo:

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)

procedimiento::

  • Proporciona entrada de voz inicial y comandos de texto.
  • establecer output_type="both" Obtén respuestas de voz y de texto.
  • Guarda la salida de audio y visualiza el texto.

5. Utilización de las herramientas de evaluación

Cortesía de Kimi-Audio Kimi-Audio-Evalkit Para la evaluación del rendimiento del modelo. Instalación:

git clone https://github.com/MoonshotAI/Kimi-Audio-Evalkit.git
cd Kimi-Audio-Evalkit
pip install -r requirements.txt

Evaluación operativa:

bash run_audio.sh --model Kimi-Audio --dataset all

procedimiento::

  • Descarga el conjunto de datos en el directorio especificado.
  • configure config.yaml Especifica la ruta del conjunto de datos.
  • Ejecute el script para generar el informe de evaluación.

advertencia

  • Asegúrate de que el formato del archivo de audio es WAV con una frecuencia de muestreo de 16 kHz.
  • El entorno GPU acelera la inferencia y se recomienda CUDA 12.4.
  • La carga de modelos requiere una gran cantidad de memoria, se recomiendan al menos 16 GB de memoria gráfica.
  • Las implantaciones que no sean de Docker requieren la instalación manual de las dependencias del sistema; consulte la documentación de GitHub.

 

escenario de aplicación

  1. Atención al cliente inteligente
    Kimi-Audio puede utilizarse para crear sistemas de atención al cliente para la interacción por voz. Transcribe las preguntas de los usuarios mediante reconocimiento de voz, combina preguntas y respuestas de audio para ofrecer respuestas y genera respuestas de voz naturales. Es adecuado para plataformas de comercio electrónico o escenarios de asistencia técnica para mejorar la experiencia del usuario.
  2. Ayudas educativas
    En el aprendizaje de idiomas, Kimi-Audio transcribe la pronunciación de los alumnos, analiza la emoción y la entonación y proporciona comentarios. También transcribe textos didácticos a voz para generar materiales de comprensión oral, lo que lo hace idóneo para plataformas de educación en línea.
  3. creación de contenidos
    Los productores de vídeo pueden utilizar Kimi-Audio para generar subtítulos o doblaje. Puede generar automáticamente subtítulos precisos para vídeos o convertir guiones en voz con varios tonos para simplificar la posproducción.
  4. historial médico
    Los médicos pueden introducir los casos por voz, Kimi-Audio los transcribe a texto y clasifica las emociones para ayudar a diagnosticar el estado emocional del paciente. Adecuado para sistemas de información hospitalarios.

 

CONTROL DE CALIDAD

  1. ¿Qué idiomas admite Kimi-Audio?
    Kimi-Audio admite el reconocimiento y la generación de voz en varios idiomas, especialmente en inglés y chino. Para otros idiomas, consulte la documentación oficial.
  2. ¿Cómo optimizar la velocidad de razonamiento?
    Para utilizar la aceleración por GPU, instale flash-attn biblioteca, set torch_dtype=torch.bfloat16. Además, los ajustes audio_top_k responder cantando text_top_k Los parámetros equilibran velocidad y calidad.
  3. ¿Admite el modelo el diálogo en tiempo real?
    Sí, el descodificador de streaming de Kimi-Audio admite la generación de audio de baja latencia para la interacción de voz en tiempo real.
  4. ¿Cómo añado un conjunto de datos personalizado para su evaluación?
    existe Kimi-Audio-Evalkit Cree un archivo JSONL en el directorio indexyaudio_path responder cantando question campo. Modifique config.yaml Basta con especificar la ruta del conjunto de datos y ejecutar el script de evaluación.
© declaración de copyright
AiPPT

Artículos relacionados

Sin comentarios

ninguno
Sin comentarios...