UniAudio 1.5
本仓库提供了一个由大语言模型驱动的音频编解码器模型,可用于构建多模态大语言模型(文本和音频模态)。 更多细节将很快介绍。 您可以从 https://arxiv.org/pdf/2406.10056 查阅相关论文。
简介
大语言模型(LLMs)在文本理解和生成方面展现出卓越的能力,但如果不进行微调,无法直接应用于跨模态任务。本文提出了一种跨模态上下文学习方法,使冻结的大语言模型能够以少样本方式完成多种音频任务,无需更新任何参数。具体而言,我们提出了一种新颖的、由大语言模型驱动的音频编解码器模型 LLM-Codec,将音频模态转换到文本空间,即用大语言模型词汇表中的词或子词表示音频标记,同时保持高质量的音频重构。核心思想是通过将音频模态压缩到经过充分训练的大语言模型标记空间,减少文本和音频之间的模态异质性。因此,音频表示可以被视为一种新的"外语",大语言模型可以通过几个示例学习这种新的"外语"。在实验中,我们研究了所提出方法在多个音频理解和生成任务中的表现,如语音情感分类、音频分类、文本到语音生成、语音增强等。实验结果表明,配备了所提出的 LLM-Codec 的大语言模型(命名为 UniAudio 1.5)在仅有少量示例的提示下,可以在简单场景中实现预期功能。这验证了所提出的跨模态上下文学习方法的可行性和有效性。为了促进少样本音频任务学习和多模态大语言模型的研究,我们已开源了 LLM-Codec 模型。
如何使用 LLM-Codec?
步骤 1:
wget https://huggingface.co/Dongchao/2024/resolve/main/semantic_acoustic.pth
步骤 2:根据 https://github.com/meta-llama/llama-recipes/tree/main 下载 LLAMA 2 7B 步骤 3:参考 infer.py
python infer.py
如何使用 LLM-Codec 和 LLAMA 2(UniAudio 1.5)
以下我们给出一个简单的使用演示。
CUDA_VISIBLE_DEVICES=0 torchrun --nproc_per_node 1 --master_port=10645 infer_code/eval_accent_understanding_v2.py \
--batch_size 1 \
--max_seq_len 2048 \
--num_workers 0 \
--output_type "next_token_prediction" \
--audio_path "音频文件夹的路径" \
--file_path tsv/acc_9way_1_shot.scp \
--vq_config_path config.yaml \
--output_dir log_eval_few_shot/7B_output \
--llama_model_path llama_inference/llama-2-7b \
--induction 1 \
--codec_ckpt "llm-codec.pth" \
演示
请参考 demos 文件夹听取生成的音频。
致谢
https://github.com/descriptinc/descript-audio-codec https://github.com/yangdongchao/AcademiCodec https://github.com/hubertsiuzdak/snac https://github.com/Meta-Llama/llama-recipes