Arm 上的实时 AI 声音生成:创意自由的个人工具

社区文章 发布于 2025 年 6 月 3 日

图像/png 作者:Michael Gamble,Arm 合作伙伴与生态系统负责人

作为一名软件工程师和音乐制作人,我一直在探索技术如何扩展创意表达。这种好奇心最近促使我构建了一个直接在设备上运行的个人声音生成应用程序,该应用程序由基于 Arm 的 CPU 和开源生成式 AI 模型提供支持。它速度快、私密,使我能够在几秒钟内从简单的提示中生成工作室级音效。

这个项目汇集了多个世界的精华

  • 来自 Stability AI 的 Stable Audio Open 模型,源自 Hugging Face
  • PyTorchTorchAudio 提供执行动力
  • 一个在 Arm-based CPU 上原生运行的快速高效管道
  • Ableton Live 无缝创意对接

一种新型创意伴侣

当我在使用 Ableton Live 深入音乐项目时,我不想中断我的工作流程来翻找库或浏览声音包。我想要一个能够在我需要时立即满足我需求的工具——就在工作流程中。

现在,我只需简单地描述我正在想象的声音(“模拟低音线”、“电影上升音效”、“低保真军鼓”),几秒钟内,生成的 .wav 文件就会出现在我的 Ableton 浏览器中。从那里,我可以调整它、循环它或将其变成一个乐器。

每个声音都是独一无二的。没有人能生成和我完全一样的声音。这种个人所有权的感觉激发了我的创造力。

由 Arm 提供支持:设备上、按需

该声音生成器完全在设备上运行,采用基于 Arm 的 CPU 技术——无需 GPU,无需云推理,无延迟。得益于 Arm 的效率和每瓦性能,即使在多步扩散运行期间,应用程序也能保持响应速度。

生成引擎基于

示例代码:优化的 CPU 生成

为了最大限度地提高 Arm CPU 的性能,我启用了完全线程利用率

# Use all available Arm CPU threads
torch.set_num_threads(os.cpu_count())

在生成过程中保持低内存使用

# Clear memory periodically
if gen_count % 3 == 0:
    gc.collect()
    print(f"Memory cleared at generation {gen_count}")

核心生成循环,为速度和效率而优化

output = generate_diffusion_cond(
    model,
    steps=7,                  # Reduced step count for faster inference
    cfg_scale=1,
    conditioning=conditioning,
    sample_size=sample_size,
    sigma_min=0.3,
    sigma_max=500,
    sampler_type="dpmpp-3m-sde",
    device=device
)

设备灵活性:CPU、Metal、CUDA

尽管为 CPU 进行了优化,但该程序也可以在 Metal (Apple Silicon) 或 CUDA 上运行(如果需要)

device = "mps"    # Apple Silicon
# device = "cuda" # NVIDIA
# device = "cpu"  # Arm CPU (default)
model = model.to(device).to(torch.float32)

与 Ableton Live 的无缝工作流程

该工具将 .wav 文件直接输出到 Ableton Live 监控的项目文件夹中。这是一个 CLI 交互示例

Enter a prompt for generating audio:
Ambient texture
Enter a tempo for the audio:
100
Generated audio saved to: Ambient texture.wav

我立即在 Live 的浏览器中看到文件,可以立即进行编排、调制和转换。

为什么这很重要

这个项目是一个个人原型——但它也是内容创作未来的一个窗口。借助 Arm CPU 上高效的设备端 AI 推理,艺术家和开发者可以:

  • 保持创作流畅,无需等待云资源
  • 确保数据隐私和输出的完全所有权
  • 将 AI 工具扩展到边缘设备、DAW 和新的创意界面

这就是开源创新与高效计算相结合的成果:实时生成能力,人人可及。


探索实现这一目标的生态系统

社区

注册登录 发表评论