AudioStory: 使用大语言模型生成长形式叙事音频

你是否曾经想过,如何让一个简单的文本描述变成一段连贯的、长达几十秒的音频故事?比如,一段描述火灾卡车出动的声音场景,或者一段动画视频的配音。AudioStory 就是这样一个工具,它结合了大语言模型和文本到音频系统,帮助我们创建结构化的长形式叙事音频。今天,我们来聊聊这个项目,包括它是怎么工作的、有什么亮点,以及如何上手使用。

AudioStory 是什么?

想象一下,你有一个复杂的叙述,比如“一个乌克勒勒演奏者在工作室表演复杂的曲子,得到掌声,然后接受采访讨论他的职业生涯”。传统的文本到音频工具可能只能生成短小的片段,但 AudioStory 可以处理更长的、需要时间连贯性和组合推理的音频。它是一个统一的理解-生成框架,能够处理视频配音、音频续接,以及长形式叙事音频合成。

这个框架的核心是使用大语言模型(LLMs)来分解复杂的叙述查询成按时间顺序排列的子任务,每个子任务都带有上下文提示。这确保了场景过渡顺畅,情感基调一致。AudioStory 有两个关键特点:

  • 解耦桥接机制:它将大语言模型和扩散模型的协作分成两个部分——一个桥接查询用于事件内部的语义对齐,另一个一致性查询用于跨事件的一致性保持。
  • 端到端训练:整个框架在单一的端到端设置中统一了指令理解和音频生成,不需要模块化的训练管道,同时增强了组件间的协同。

此外,这个项目还建立了一个基准数据集 AudioStory-10K,覆盖了动画音景和自然声音叙述等多样领域。实验显示,AudioStory 在单音频生成和叙事音频生成上都优于之前的文本到音频基准,尤其在指令跟随能力和音频保真度方面。

audiostory

AudioStory 的工作原理

你可能会问,AudioStory 是如何从文本或音频输入生成长形式音频的?让我们一步步拆解它的方法。

AudioStory 采用了一个统一的理解-生成框架。给定一个文本指令或音频输入,大语言模型首先分析并分解它成结构化的音频子事件,每个子事件都带有上下文。然后,基于这些子事件,大语言模型执行交织的推理生成:依次为每个音频片段产生字幕、语义令牌和残差令牌。这些令牌被融合并传递给扩散变换器(DiT),从而桥接了大语言模型和音频生成器。通过渐进训练,AudioStory 最终实现了强大的指令理解和高品质音频生成。

audiostory_framework

具体来说,这个过程包括:

  1. 输入处理:无论是文本指令(如“开发一个全面音频,代表杰克·岛袋表演复杂的乌克勒勒曲子”)还是音频流,大语言模型都会推理出相关的音频子事件。
  2. 子事件分解:将复杂叙述分成时间有序的部分,例如表演、掌声、采访。
  3. 令牌生成:为每个片段生成语义令牌(捕捉含义)和残差令牌(细化细节)。
  4. 融合与生成:令牌融合后输入 DiT,输出音频。

这种方法解决了传统文本到音频系统在长形式内容上的短板,比如缺乏时间连贯性或组合推理。

AudioStory 的演示示例

看到实际效果总是更有说服力。下面是 AudioStory 在不同场景下的演示。这些示例展示了它在视频配音和文本到长音频方面的能力。

视频配音(Tom & Jerry 风格)

AudioStory 可以用从 Tom & Jerry 视频中训练的模型进行配音,使用从视频提取的视觉字幕。以下是几个示例视频:

  • 示例 1:一段 Tom & Jerry 风格的追逐场景配音。
  • 示例 2:另一段互动场景,音频与视觉同步。
  • 示例 3:第三段片段,展示情感过渡。

(注:实际视频链接可参考项目资源,如 https://github.com/user-attachments/assets/f06b5999-6649-44d3-af38-63fdcecd833c 等。)

跨域视频配音(Tom & Jerry 风格)

AudioStory 还能处理跨域配音,将 Tom & Jerry 风格应用到其他视频上:

  • 示例 1:一个真人场景配以动画风格音频。
  • 示例 2:动物视频的配音。
  • 示例 3:更多变体,如不同动画或现实片段。

(类似地,视频资源包括 https://github.com/user-attachments/assets/e62d0c09-cdf0-4e51-b550-0a2c23f8d68d 等。)

文本到长音频(自然声音)

这里是纯文本输入生成的长音频示例:

  • 指令:”Develop a comprehensive audio that fully represents jake shimabukuro performs a complex ukulele piece in a studio, receives applause, and discusses his career in an interview. The total duration is 49.9 seconds.”

    • 输出:一段49.9秒的音频,包括表演、掌声和采访声音。
  • 指令:”Develop a comprehensive audio that fully represents a fire truck leaves the station with sirens blaring, signaling an emergency response, and drives away. The total duration is 35.1 seconds.”

    • 输出:35.1秒的音频,捕捉警笛和开车声。
  • 指令:”Understand the input audio, infer the subsequent events, and generate the continued audio of the coach giving basketball lessons to the players. The total duration is 36.6 seconds.”

    • 输出:36.6秒的续接音频,基于输入推断后续事件。

这些演示突出了 AudioStory 在保持叙事连贯性和音频质量上的优势。

如何安装 AudioStory?

如果你想自己试用 AudioStory,安装过程很简单。以下是步步指南,确保你能顺利设置环境。

先决条件

  • Python 版本 >= 3.10(推荐使用 Anaconda)。
  • PyTorch 版本 >= 2.1.0。
  • NVIDIA GPU 和 CUDA 支持。

安装步骤

  1. 克隆仓库:

    git clone https://github.com/TencentARC/AudioStory.git
    
  2. 进入目录:

    cd AudioStory
    
  3. 创建虚拟环境:

    conda create -n audiostory python=3.10 -y
    conda activate audiostory
    
  4. 运行安装脚本:

    bash install_audiostory.sh
    

这些步骤会安装所有必要的依赖,确保环境就绪。注意,安装脚本处理了基本的库,但如果你遇到问题,可以检查 CUDA 配置。

如何使用 AudioStory 进行推理?

安装好后,你可以运行推理来生成音频。推理命令允许你指定模型路径、指导规模和保存文件夹。

推理步骤

  1. 准备模型检查点(checkpoint):下载或训练得到 /path/to/ckpt。

  2. 运行命令:

    python evaluate/inference.py --model_path /path/to/ckpt --guidance 4.0 --save_folder_name audiostory --total_duration 50
    
  • --model_path:指向你的模型文件。
  • --guidance:分类器自由指导的强度,默认为 4.0。
  • --save_folder_name:输出文件夹名称。
  • --total_duration:生成的音频总时长(秒)。

这个命令会生成一个 50 秒的音频文件,保存到指定文件夹。你可以调整参数来测试不同时长或指导水平。

AudioStory 的优势和实验结果

为什么选择 AudioStory 而不是其他文本到音频工具?因为它专门针对长形式叙事设计。实验显示,在指令跟随能力和音频保真度上,它超越了先前的基准。

  • 单音频生成:处理短片段时,AudioStory 保持高保真。
  • 叙事音频生成:在长序列中,确保跨事件的连贯性。

基准 AudioStory-10K 包括多样领域,如动画和自然声音,帮助验证这些优势。

常见问题解答(FAQ)

在这里,我预测了一些你可能有的问题,并直接回答它们。这些基于 AudioStory 的实际功能和文档。

AudioStory 能处理哪些类型的输入?

AudioStory 支持文本指令和音频输入。例如,你可以输入一个描述来生成新音频,或者提供现有音频来续接后续事件。

如何确保生成的音频连贯?

通过大语言模型分解成子事件,并使用桥接和一致性查询来维护语义对齐和跨事件一致性。

AudioStory 的训练过程是怎样的?

它使用端到端训练,统一了理解和生成。没有模块化管道,而是渐进训练以增强协同。

我能用 AudioStory 做视频配音吗?

是的,特别是 Tom & Jerry 风格。通过提取视觉字幕,它可以同步音频到视频。

如果我想生成更长的音频,该怎么做?

在推理命令中调整 --total_duration 参数,比如设置为 100 秒。但注意,性能取决于你的硬件。

AudioStory 支持哪些领域?

基准覆盖动画音景和自然声音叙述,但你可以扩展到类似叙事场景。

安装时遇到 CUDA 错误怎么办?

检查你的 NVIDIA 驱动和 CUDA 版本是否兼容 PyTorch >=2.1.0。推荐使用官方 CUDA 下载。

AudioStory 的未来计划是什么?

项目计划发布 Gradio 演示、检查点,以及所有三个阶段的训练代码。

如何引用 AudioStory?

如果你在研究中使用它,可以用这个 BibTeX:

@misc{guo2025audiostory,
      title={AudioStory: Generating Long-Form Narrative Audio with Large Language Models}, 
      author={Yuxin Guo and Teng Wang and Yuying Ge and Shijie Ma and Yixiao Ge and Wei Zou and Ying Shan},
      year={2025},
      eprint={2508.20088},
      archivePrefix={arXiv},
      primaryClass={cs.CV},
      url={https://arxiv.org/abs/2508.20088}, 
}

AudioStory 的许可证是什么?

它使用 Apache 2 许可证,允许开源使用。

AudioStory 的作者和联系方式

这个项目由 Yuxin Guo、Teng Wang、Yuying Ge、Shijie Ma、Yixiao Ge、Wei Zou 和 Ying Shan 开发。他们来自中国科学院自动化研究所和腾讯 PCG 的 ARC Lab。

如果你有问题,可以联系 guoyuxin2021@ia.ac.cn。欢迎讨论和潜在合作。

深入探讨 AudioStory 的技术细节

现在,让我们更深入地聊聊 AudioStory 的内部机制。这部分适合那些对大语言模型和音频生成有基础了解的读者。

理解-生成框架的细节

框架的核心是交织推理生成。大语言模型不只是生成文本;它产生字幕,然后是语义令牌(代表音频的含义层)和残差令牌(添加细微差别)。这些令牌融合后,扩散变换器生成最终音频。

考虑一个例子:输入“火灾卡车离开车站,警笛响起,然后开车离开”。

  • 分解:子事件1 – 离开车站;子事件2 – 警笛;子事件3 – 开车。
  • 生成:为每个子事件创建令牌,确保过渡自然。

桥接机制的解耦

桥接查询处理事件内部的对齐,比如确保声音匹配描述。一致性查询则跨事件工作,比如保持整体情感基调(如紧急感)。

这避免了传统方法中常见的断裂感。

端到端训练的优势

不像一些系统需要分开训练理解和生成,AudioStory 的端到端方法让组件更协同。渐进训练从简单任务开始,逐步到复杂叙事。

基准数据集 AudioStory-10K

这个数据集包括 10K 条目,覆盖多样叙事。它用于评估指令跟随(模型是否准确响应查询)和音频保真度(声音质量)。

实验结果:

任务类型 优势指标 与基准比较
单音频生成 指令跟随能力 优于先前 TTA
叙事音频生成 音频保真度和连贯性 显著提升

潜在应用

AudioStory 可以用于:

  • 动画配音:如 Tom & Jerry 风格。
  • 教育内容:生成教练课音频续接。
  • 娱乐:创建自然声音故事,如音乐表演序列。

实际使用案例分析

假设你是一个内容创作者,想生成一个 50 秒的音频故事。

  1. 准备指令:写一个详细描述,包括事件序列和时长。
  2. 运行推理:使用上述命令。
  3. 监听输出:检查连贯性和质量。
  4. 迭代:调整指导参数以优化。

另一个案例:视频配音。

  1. 提取视觉字幕(使用外部工具,但 AudioStory 处理音频部分)。
  2. 输入到模型。
  3. 合成并同步。

这些步骤基于项目文档,确保实用。

总结和思考

AudioStory 打开了长形式叙事音频生成的新大门。通过结合大语言模型的推理和大扩散模型的生成,它处理了复杂任务,而不牺牲质量。如果你对音频 AI 感兴趣,不妨试试安装和运行。它不只是一个工具,更是理解如何让机器创建连贯故事的窗口。