はじめに
Kimi-Audioは、Moonshot AIによって開発されたオープンソースの音声ベースモデルで、音声の理解、生成、対話に焦点を当てています。音声認識、音声Q&A、音声感情認識など、幅広い音声処理タスクをサポートします。このモデルは、1300万時間以上の音声データで事前に訓練されており、革新的なハイブリッドアーキテクチャと組み合わせることで、複数の音声ベンチマークで優れた性能を発揮します。kimi-Audioは、開発者が研究やアプリケーションに簡単に統合できるように、モデルの重み、推論コード、評価ツールキットを提供します。効率的な音声処理と対話機能を必要とするシナリオに適しており、明確なドキュメント、Docker展開のサポート、活発なコミュニティ、継続的なアップデートがあります。
機能一覧
- 音声認識(ASR):音声をテキストに変換し、多言語での音声書き起こしをサポートします。
- Audio Question and Answer (AQA):オーディオコンテンツに基づくユーザーの質問に答え、オーディオのコンテキストを理解する。
- 音声キャプション(AAC):音声に正確なキャプションや説明を生成します。
- 音声感情認識(SER):嬉しい、悲しいなどの音声中の感情状態を分析。
- サウンドイベント/シーン分類(SEC/ASC):車の音や室内環境など、オーディオ内の特定のイベントやシーンを識別します。
- 音声合成(TTS):テキストを自然な音声に変換し、複数のトーンをサポートします。
- 音声変換(VC):音声の音色やスタイルを変更して、パーソナライズされたオーディオを生成します。
- エンドツーエンドの音声対話:連続的な音声対話をサポートし、自然な対話をシミュレートします。
- ストリーミング・オーディオ生成:チャンク型ストリーミング・デコーダーによる低レイテンシーのオーディオ生成。
- 評価ツールキット:標準化された評価ツールを提供し、異なるモデルの性能比較を容易にする。
ヘルプの使用
設置プロセス
Kimi-Audioのデプロイには、一貫した環境と簡単なインストールを保証するためにDockerを推奨します。詳しいインストール手順は以下の通りです:
- クローン倉庫
Kimi-Audioのコードとサブモジュールを取得するには、ターミナルで以下のコマンドを実行します:git clone https://github.com/MoonshotAI/Kimi-Audio.git cd Kimi-Audio git submodule update --init --recursive
- 依存関係のインストール
Python 3.10環境を推奨します:pip install -r requirements.txt
設置の確認
torch
歌で応えるsoundfile
GPUをサポートしている場合は、CUDAバージョンのPyTorchをインストールする必要があります。 - Dockerイメージの構築
DockerイメージをKimi-Audioディレクトリにビルドします:docker build -t kimi-audio:v0.1 .
あるいは、公式のビルド済みイメージを使う:
docker pull moonshotai/kimi-audio:v0.1
- 実行中のコンテナ
Dockerコンテナを起動し、ローカルの作業ディレクトリをマウントする:docker run -it -v $(pwd):/app kimi-audio:v0.1 bash
- モデルウェイトのダウンロード
キミオーディオは主に2つのモデルを提供している:Kimi-Audio-7B
(ベースモデル)とKimi-Audio-7B-Instruct
(モデルを微調整するための手順)。Hugging Faceからダウンロード:moonshotai/Kimi-Audio-7B-Instruct
直接使用に適している。moonshotai/Kimi-Audio-7B
さらなる微調整に適している。
Hugging Face CLIを使ってログインし、ダウンロードする:
huggingface-cli login
モデルは指定されたパスに自動的にダウンロードされます。
使用方法
Kimi-Audioのコア機能はPython APIコールで実装されています。以下に主要な機能の詳細な動作フローを示します:
1.音声認識(ASR)
オーディオファイルをテキストに変換する。サンプルコード
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)
手続き::
- WAV形式のオーディオファイルを用意する。
- セットアップ
messages_asr
タスクを転写に指定する。 - コードを実行し、テキスト出力を得る。
2.オーディオクイズ(AQA)
音声をもとに質問に答えてください。例
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)
手続き::
- 情報を含むオーディオファイルをアップロードする。
- ある
messages_qa
で具体的な質問を設定する。 - モデルからテキスト応答を得る。
3.音声合成 (TTS)
テキストを音声出力に変換します。例
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)
手続き::
- 変換するテキストを入力します。
- セットアップ
output_type="audio"
オーディオデータを取得する。 - 利用する
soundfile
WAVファイルとして保存する。
4.エンド・ツー・エンドの音声対話
継続的な音声対話に対応。例
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)
手続き::
- 最初の音声入力とテキストコマンドを提供する。
- セットアップ
output_type="both"
音声とテキストによる応答を得る。 - オーディオ出力を保存し、テキストを表示します。
5.評価ツールキットの使用
キミオーディオ提供 Kimi-Audio-Evalkit
モデル性能評価用。設置:
git clone https://github.com/MoonshotAI/Kimi-Audio-Evalkit.git
cd Kimi-Audio-Evalkit
pip install -r requirements.txt
運用評価:
bash run_audio.sh --model Kimi-Audio --dataset all
手続き::
- 指定したディレクトリにデータセットをダウンロードする。
- コンフィグ
config.yaml
データセットのパスを指定する。 - スクリプトを実行して評価レポートを作成します。
ほら
- オーディオファイルのフォーマットがWAVで、サンプルレートが16kHzであることを確認してください。
- GPU環境は推論を加速し、CUDA 12.4が推奨されている。
- モデルのローディングには大量のメモリが必要で、少なくとも16GBのグラフィックメモリを推奨します。
- Docker以外のデプロイメントでは、システムの依存関係を手動でインストールする必要があります。
アプリケーションシナリオ
- インテリジェントなカスタマーサービス
Kimi-Audioは、音声対話のためのカスタマーサービスシステムの構築に使用できます。音声認識によってユーザーの質問を書き起こし、音声Q&Aを組み合わせて回答を提供し、自然な音声応答を生成します。Eコマースプラットフォームやテクニカルサポートシナリオに適しており、ユーザーエクスペリエンスを向上させます。 - 教材
言語学習において、Kimi-Audioは生徒の発音を書き起こし、感情やイントネーションを分析し、フィードバックを提供します。また、テキストを音声に書き起こし、リスニング教材を作成することもできるため、オンライン教育プラットフォームにも適しています。 - コンテンツ制作
ビデオ制作者はKimi-Audioを使って字幕や吹き替えを作成することができます。ビデオ用の正確な字幕を自動生成したり、スクリプトを複数のトーンを持つ音声に変換し、ポストプロダクションを簡素化することができます。 - カルテ
医師が音声で症例を入力すると、Kimi-Audioがテキストに書き起こし、感情を分類して患者の感情状態の診断を支援します。病院情報システムに最適。
品質保証
- Kimi-Audioはどの言語に対応していますか?
Kimi-Audioは、特に英語と中国語の多言語音声認識と音声生成をサポートしています。その他の言語サポートについては、公式ドキュメントをご参照ください。 - 推理のスピードを最適化するには?
GPUアクセラレーションを使用するにはflash-attn
ライブラリ, セットtorch_dtype=torch.bfloat16
.さらにaudio_top_k
歌で応えるtext_top_k
パラメーターはスピードと品質のバランスをとる。 - そのモデルはリアルタイムの対話をサポートしているか?
はい、Kimi-Audioのストリーミング・デコーダーは、リアルタイムの音声対話のための低遅延オーディオ生成をサポートしています。 - 評価用にカスタムデータセットを追加するには?
あるKimi-Audio-Evalkit
JSONLファイルをindex
そしてaudio_path
歌で応えるquestion
フィールドの修正config.yaml
データセットのパスを指定して評価スクリプトを実行するだけです。