Allgemeine Einführung
Kimi-Audio ist ein Open-Source-Audiobasismodell, das von Moonshot AI entwickelt wurde und sich auf das Verstehen, die Erzeugung und den Dialog von Audio konzentriert. Es unterstützt eine breite Palette von Audioverarbeitungsaufgaben wie Spracherkennung, Audio-Q&A und Sprach-Emotionserkennung. Das Modell wurde mit mehr als 13 Millionen Stunden Audiodaten trainiert und zeigt in Kombination mit einer innovativen hybriden Architektur gute Leistungen in mehreren Audio-Benchmarks. kimi-Audio bietet Modellgewichte, Inferenzcode und ein Evaluierungs-Toolkit für Entwickler, um es einfach in ihre Forschung und Anwendungen zu integrieren. Es eignet sich für Szenarien, die eine effiziente Audioverarbeitung und Dialogfähigkeiten erfordern, mit klarer Dokumentation, Unterstützung für die Docker-Bereitstellung, einer aktiven Community und kontinuierlichen Updates.
Funktionsliste
- Spracherkennung (ASR): Konvertiert Audio in Text und unterstützt mehrsprachige Sprachtranskription.
- Audio Question and Answer (AQA): Beantwortung von Benutzerfragen auf der Grundlage von Audioinhalten und Verständnis des Audiokontextes.
- Audio Captioning (AAC): erzeugt genaue Untertitel oder Beschreibungen für Audio.
- Speech Emotion Recognition (SER): analysiert emotionale Zustände in Audiodateien, z. B. glücklich oder traurig.
- Sound Event/Scene Classification (SEC/ASC): identifiziert bestimmte Ereignisse oder Szenen in Audiodateien, z. B. Autogeräusche oder Innenraumgeräusche.
- Text-to-Speech (TTS): wandelt Text in natürliche Sprache um, unterstützt mehrere Töne.
- Sprachumwandlung (VC): Ändern Sie die Klangfarbe oder den Stil der Stimme, um personalisierte Audios zu erzeugen.
- End-to-End-Sprachdialog: Unterstützt kontinuierliche Sprachinteraktion, die einen natürlichen Dialog simuliert.
- Streaming-Audio-Generierung: Audio-Generierung mit niedriger Latenz durch einen Chunked-Streaming-Decoder.
- Evaluierungs-Toolkit: stellt standardisierte Evaluierungsinstrumente zur Verfügung, um den Vergleich der verschiedenen Modellleistungen zu erleichtern.
Hilfe verwenden
Einbauverfahren
Für die Bereitstellung von Kimi-Audio wird Docker empfohlen, um eine einheitliche Umgebung und eine einfache Installation zu gewährleisten. Hier sind die detaillierten Installationsschritte:
- Klon-Lager
Führen Sie den folgenden Befehl im Terminal aus, um den Code und die Submodule von Kimi-Audio zu erhalten:git clone https://github.com/MoonshotAI/Kimi-Audio.git cd Kimi-Audio git submodule update --init --recursive
- Installation von Abhängigkeiten
Installieren Sie die Python-Abhängigkeiten, eine Python 3.10-Umgebung wird empfohlen:pip install -r requirements.txt
Sicherstellung der Installation
torch
im Gesang antwortensoundfile
Wenn Sie GPU-Unterstützung haben, müssen Sie die CUDA-Version von PyTorch installieren. - Erstellen eines Docker-Images
Erstellen Sie das Docker-Image im Verzeichnis Kimi-Audio:docker build -t kimi-audio:v0.1 .
Oder verwenden Sie ein offizielles vorgefertigtes Image:
docker pull moonshotai/kimi-audio:v0.1
- Laufende Container
Starten Sie den Docker-Container und mounten Sie das lokale Arbeitsverzeichnis:docker run -it -v $(pwd):/app kimi-audio:v0.1 bash
- Download Modellgewichte
Kimi-Audio bietet zwei Hauptmodelle an:Kimi-Audio-7B
(Basismodell) undKimi-Audio-7B-Instruct
(Anleitung zur Feinabstimmung des Modells). Heruntergeladen von Hugging Face:moonshotai/Kimi-Audio-7B-Instruct
: Für den direkten Gebrauch geeignet.moonshotai/Kimi-Audio-7B
: Geeignet für weitere Feinabstimmung.
Verwenden Sie die Hugging Face CLI zum Anmelden und Herunterladen:
huggingface-cli login
Das Modell wird automatisch in den angegebenen Pfad heruntergeladen.
Verwendung
Die Kernfunktionen von Kimi-Audio werden durch Python-API-Aufrufe implementiert. Im Folgenden finden Sie den detaillierten Ablauf der Hauptfunktionen:
1. die Spracherkennung (ASR)
Audiodatei in Text umzuwandeln. Beispiel-Code:
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)
Verfahren::
- Bereiten Sie eine Audiodatei im WAV-Format vor.
- aufstellen
messages_asr
Geben Sie die Aufgabe als Transkription an. - Führen Sie den Code aus und erhalten Sie die Textausgabe.
2. ein Audio-Quiz (AQA)
Beantworten Sie die Fragen anhand des Audios. Beispiel:
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)
Verfahren::
- Laden Sie eine Audiodatei mit Informationen hoch.
- existieren
messages_qa
Stellen Sie spezifische Fragen in der - Abrufen von Textantworten aus dem Modell.
3. text-to-speech (TTS)
Wandelt Text in Sprachausgabe um. Beispiel:
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)
Verfahren::
- Geben Sie den zu konvertierenden Text ein.
- aufstellen
output_type="audio"
Abrufen von Audiodaten. - ausnutzen
soundfile
Als WAV-Datei speichern.
4. durchgängiger Sprachdialog
Unterstützt kontinuierliche Sprachinteraktion. Beispiel:
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)
Verfahren::
- Ermöglicht erste Spracheingaben und Textbefehle.
- aufstellen
output_type="both"
Erhalten Sie Sprach- und Textantworten. - Speichern Sie die Audioausgabe und zeigen Sie den Text an.
5. die Verwendung des Bewertungs-Toolkits
Mit freundlicher Genehmigung von Kimi-Audio Kimi-Audio-Evalkit
Zur Bewertung der Modellleistung. Einbau:
git clone https://github.com/MoonshotAI/Kimi-Audio-Evalkit.git
cd Kimi-Audio-Evalkit
pip install -r requirements.txt
Operative Bewertung:
bash run_audio.sh --model Kimi-Audio --dataset all
Verfahren::
- Laden Sie den Datensatz in das angegebene Verzeichnis herunter.
- konfigurieren.
config.yaml
Gibt den Pfad des Datensatzes an. - Führen Sie das Skript aus, um den Bewertungsbericht zu erstellen.
caveat
- Stellen Sie sicher, dass das Audiodateiformat WAV mit einer Abtastrate von 16 kHz ist.
- Die GPU-Umgebung beschleunigt die Inferenz und CUDA 12.4 wird empfohlen.
- Das Laden von Modellen erfordert eine große Menge an Arbeitsspeicher, es werden mindestens 16 GB Grafikspeicher empfohlen.
- Nicht-Docker-Bereitstellungen erfordern die manuelle Installation von Systemabhängigkeiten, siehe die GitHub-Dokumentation.
Anwendungsszenario
- Intelligente Kundenbetreuung
Kimi-Audio kann für den Aufbau von Kundendienstsystemen für die Sprachinteraktion verwendet werden. Es transkribiert Benutzerfragen durch Spracherkennung, kombiniert Audio-Q&A, um Antworten zu geben, und erzeugt natürliche Sprachantworten. Es eignet sich für E-Commerce-Plattformen oder technische Supportszenarien zur Verbesserung der Benutzererfahrung. - Pädagogische Hilfsmittel
Beim Sprachenlernen transkribiert Kimi-Audio die Aussprache der Schüler, analysiert Emotionen und Intonation und gibt Feedback. Kimi-Audio transkribiert auch Unterrichtstexte in Sprache, um Hörmaterial zu erstellen, und eignet sich daher für Online-Bildungsplattformen. - Erstellung von Inhalten
Videoproduzenten können Kimi-Audio verwenden, um Untertitel oder Synchronisationen zu erstellen. Es kann automatisch genaue Untertitel für Videos erzeugen oder Skripte in Sprache mit mehreren Tönen umwandeln, um die Nachbearbeitung zu vereinfachen. - Krankenakte
Ärzte können Fälle per Stimme eingeben, Kimi-Audio transkribiert sie in Text und klassifiziert die Emotionen, um bei der Diagnose des emotionalen Zustands des Patienten zu helfen. Geeignet für Krankenhausinformationssysteme.
QA
- Welche Sprachen werden von Kimi-Audio unterstützt?
Kimi-Audio unterstützt mehrsprachige Spracherkennung und -erzeugung, insbesondere in Englisch und Chinesisch. Für die Unterstützung anderer Sprachen lesen Sie bitte die offizielle Dokumentation. - Wie kann die Geschwindigkeit des Denkens optimiert werden?
Um die GPU-Beschleunigung zu nutzen, installieren Sieflash-attn
Bibliothek, Satztorch_dtype=torch.bfloat16
. Darüber hinaus werden Anpassungenaudio_top_k
im Gesang antwortentext_top_k
Die Parameter stellen ein Gleichgewicht zwischen Geschwindigkeit und Qualität her. - Unterstützt das Modell den Dialog in Echtzeit?
Ja, der Streaming-Decoder von Kimi-Audio unterstützt die Audioerzeugung mit niedriger Latenz für Sprachinteraktion in Echtzeit. - Wie füge ich einen benutzerdefinierten Datensatz für die Auswertung hinzu?
existierenKimi-Audio-Evalkit
Erstellen Sie eine JSONL-Datei in derindex
undaudio_path
im Gesang antwortenquestion
Feld. Ändern Sieconfig.yaml
Geben Sie einfach den Pfad zum Datensatz an und führen Sie das Auswertungsskript aus.