ARTICLE DETAIL

资讯详情

深耕编程入门与网站建设的一线实战洞察。

PersonaPlex 离线推理完整教程:用 WAV 文件批量生成全双工语音对话

PersonaPlex 离线推理完整教程:用 WAV 文件批量生成全双工语音对话 PersonaPlex 离线推理完整教程用 WAV 文件批量生成全双工语音对话【免费下载链接】personaplexPersonaPlex code.项目地址: https://gitcode.com/GitHub_Trending/pe/personaplexPersonaPlex 是 NVIDIA 推出的实时全双工语音对话模型支持文本角色提示Role Prompt 音频音色条件Voice Prompt双通道角色控制基于 Moshi 架构训练而来。除了浏览器实时对话之外它还提供了一条离线推理通道你只需准备一批 WAV 录音脚本就会为每条录音生成等时长的模型回复音频 对应文本 JSON全程无需麦克风、无需浏览器非常适合新手做批量测试与复现。离线推理和实时交互有什么区别PersonaPlex 有两种使用方式对比项实时交互离线推理入口server.py Web UI端口 8998offline.py 命令行输入浏览器麦克风实时音频流任意 WAV 文件输出耳机实时听到回复输出 WAV模型音频 JSON文本流适用场景人工体验对话批量测试、评估、复现离线脚本的运行逻辑在 moshi/moshi/offline.py 中写得很清楚加载 Mimi 音频编解码器与 Moshi 语言模型 → 预热 CUDA 图 → 注入文本提示与音色提示 →逐帧把用户 WAV 送入输入通道自回归采样文本和模型音频 → 拼接后写出与输入等时长的 WAV 和文本 JSON。它最大的三个优势可批量一个 shell 循环就能处理整目录录音可复现固定--seed后多次运行结果一致可审计生成的每一帧文本 token 都会记录方便检查角色是否跑偏。快速安装离线推理环境怎么搭只需三步装好环境。① 安装 Opus 音频编解码库Ubuntu/Debiansudo apt install libopus-dev② 从仓库安装 Python 包pip install moshi/. 使用 Blackwell 架构 GPU 的机器建议按 README.md 的说明额外安装 cu130 版本的 PyTorch。③ 配置 HuggingFace 令牌先在 Hugging Face 上接受nvidia/personaplex-7b-v1的模型许可然后设置环境变量export HF_TOKENYOUR_HUGGINGFACE_TOKEN验证脚本是否就绪python -m moshi.offline --help看到参数列表说明安装成功。模型权重、分词器与音色库voices.tgz都会由脚本自动从 Hugging Face 下载并缓存无需手动搬运。快速上手用仓库自带 WAV 跑通第一条命令仓库内置了两段测试录音正好覆盖官方演示的两种角色拿来即用用户音频assets/test/input_assistant.wav提问场景、assets/test/input_service.wav客服场景角色提示词assets/test/prompt_service.txt示例 1教师助手Assistant角色不带--text-prompt时脚本默认使用内置的教师提示词You are a wise and friendly teacher...HF_TOKENTOKEN \ python -m moshi.offline \ --voice-prompt NATF2.pt \ --input-wav assets/test/input_assistant.wav \ --seed 42424242 \ --output-wav output.wav \ --output-text output.json运行结束后你会得到两个文件output.wav模型说出的音频时长与输入完全一致和output.json模型回复的文本 token 列表。示例 2客服Customer Service角色官方演示中的客服示例用$(cat ...)把角色提示词文件作为参数传入音色换成男声HF_TOKENTOKEN \ python -m moshi.offline \ --voice-prompt NATM1.pt \ --text-prompt $(cat assets/test/prompt_service.txt) \ --input-wav assets/test/input_service.wav \ --seed 42424242 \ --output-wav output.wav \ --output-text output.json这段示例的角色设定是家电维修公司客服 Farhod工单信息洗碗机配件缺货、可用替代件延迟 3 天、人工费 $60/小时。你可以把自己的业务信息按同样格式写进提示词模型会围绕这些信息作答。读懂离线推理的常用参数参数默认值说明--input-wav/--output-wav必填用户输入录音 / 模型回复音频等时长--output-text必填模型回复文本的 JSON 输出路径--voice-prompt必填音色提示文件名如NATF2.pt也支持 WAV 文件--voice-prompt-dir自动下载 voices.tgz音色文件目录省略时自动从 HF 下载解压--text-prompt教师角色提示词角色设定自动包裹system标签--temp-audio/--temp-text0.8 / 0.7音频/文本采样温度--topk-audio/--topk-text250 / 25top-k 采样范围--greedy关贪心解码关闭随机采样--seed-1关闭随机种子固定后可复现--devicecuda运行设备CPU 机器设为cpu--cpu-offload关显存不足时把 LM 层卸载到 CPU需pip install accelerate音色库怎么选预打包音色分两大类完整列表见 README.mdNatural(female): NATF0 ~ NATF3 自然对话女声 Natural(male): NATM0 ~ NATM3 自然对话男声 Variety(female): VARF0 ~ VARF4 多样化女声 Variety(male): VARM0 ~ VARM4 多样化男声经验法则客服 / 助手场景选NAT 系更稳闲聊实验可以试试VAR 系更有个性。角色提示词怎么改README.md 的 Prompting Guide 给了三类范例助手角色固定提示词 You are a wise and friendly teacher...客服角色公司名 你的名字 业务信息例如垃圾清运、餐厅点餐、无人机租赁日常闲聊以 You enjoy having a good conversation. 开头再附加话题与人设甚至可以让它扮演火星任务中抢修反应堆的宇航员。批量生成一个循环搞定整目录 WAV批量生成只是把上面的命令放进 shell 循环。核心思路输入文件变化输出文件名跟着变seed 统一固定SEED42424242 for f in assets/test/*.wav; do name$(basename $f .wav) HF_TOKEN$HF_TOKEN python -m moshi.offline \ --voice-prompt NATF2.pt \ --text-prompt You are a wise and friendly teacher. Answer questions or provide advice in a clear and engaging way. \ --input-wav $f \ --seed $SEED \ --output-wav out_${name}.wav \ --output-text out_${name}.json done几个实用建议批量评估时锁定--seed同一批录音、同一提示词、同一 seed多次运行结果一致便于横向对比不同提示词或音色的差异输出文件名带上输入名如out_${name}.wav避免互相覆盖文本 JSON 是免费的字幕轨批量跑完后不用逐条听音频直接扫一遍 JSON 就能判断角色设定是否生效想换角色只需改--text-prompt同一组录音可快速产出助手版 / 客服版 / 闲聊版三套对照结果。另外如果你更倾向于容器化部署项目根目录的 Dockerfile 与 docker-compose.yaml 可直接拉起实时服务端与离线脚本共用同一套代码库moshi/。常见问题排查FAQQ1启动报错找不到libopus→ 第 1 步的libopus-dev没装。安装后重试即可。Q2GPU 显存不够报 OOM→ 加--cpu-offload参数需pip install accelerate把 LM 层卸载到 CPU或者按 README 安装纯 CPU 版 PyTorch再配合--device cpu完全用 CPU 跑离线推理。Q3下载权重时报 401 / 权限错误→ 你还没有在 Hugging Face 上接受模型许可或HF_TOKEN未设置。Q4输出音频和输入一样长吗→ 是。脚本会把生成帧裁剪/补齐到与输入完全相同的时长并以 24kHz 单声道 WAV 写出。Q5输入只能是 WAV 吗→ 离线脚本面向 WAV 文件设计--input-wav。其他格式请先转码为 WAV 再喂入。小结用一句话总结本教程装好 libopus 和moshi/.设好HF_TOKEN把 WAV 丢给 moshi/moshi/offline.py就能批量产出全双工对话音频与文本。接下来不妨用 assets/test/ 的两段录音复现官方示例固定 seed对比 NATF2 与 VARM0 两种音色把客服提示词换成自己的业务看看模型能接住多少戏 ️【免费下载链接】personaplexPersonaPlex code.项目地址: https://gitcode.com/GitHub_Trending/pe/personaplex创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表