好的,现在市面上有很多优秀的语音识别模型。我们有Whisper,有Parachute,还有Canary。 如果你只需要简单的转录文本,可能会觉得这已经是解决好的问题了。 但最大的挑战在于,如果你想为大语言模型或正在构建的应用获取上下文,仅靠转录文本是不够的。 你通常还需要时间出来知道某句话是何时说的。 但往往更重要的是,你需要知道到底是谁说的。 也就是说,如果你正在为四个人互相辩论的播客制作转录文本, 你需要知道谁说了什么,谁持哪方观点等。 如果你想做会议纪要之类的东西,道理也是一样的。 你需要知道谁同意了哪项行动, 尤其是现在我们要构建智能体来处理这些事物, 能够提取引语并准确归属于对应的人 而不是只有一份所有人都在同一通话中逐字说出的转录文本 就像只有一个人说话是那样 那么一直都有办法做到这一点,对吧? 在我之前的一些视频中 我就展示过用Whisper配合当时的一些开源工具来做到这一点 但这一直是一场猫鼠游戏 看你能做到多准确 而且你还得面对如何处理 由不同提供商制作的多个模型等挑战 这就引出了NVIDIA刚刚发布的东西 这是一个专门针对该问题的新模型 这就是NEMU闯三 说话人分离 它是一个开放权重模型 它采用的许可证允许商业使用 凭借这种许可证 你当然可以做大多数你想做的事 这里酷的一点是 它只有大约1亿参数量 所以只需要4GB显存的GPU就能运行 除此之外 当我们谈论准确率时 它可以处理多达8位说话人 过去大多数模型的上限 大概是3到4位说话人 而它不仅能在大家清晰说话时 处理8位说话人 即使人们互相打断说话 它也能做得相当不错 此外 它的设计初衷是与你正在使用的 任何语音识别模型配合使用 所以如果你有一个特别喜欢的模型,比如PireKit,你就可以基本上使用这个模型。 稍后我会展示一个演示,我们将原始播客录音转换为转录文本。 每一行都归属于对应的说话人。 但首先,让我介绍一下这个模型的背景。 VDII将其作为Nemotron语音模型系列的一部分推出。 在这个频道上,我谈过Nemotron大语言模型的, 但我认为很多人没有意识到 这一系列还包含很多语音模型 在识别方面 你有PowerKit、Canary和Nemotron ASR 它们共同支持43种语言的流逝和批量转路 它们还有一个叫Magpie的TTS模型 支持多语言并具备语音定制等功能 此外,它们还有一些进行翻译 甚至全双公语音到语音处理的模型 比如PersonaPlex 直到最近 他们的说话人分离选项 叫做Sortformer 最多支持四位说话人 有一段时间 他实际上相当受欢迎 在很多方面 你可以把这个新模型 看作是对他的直接替换 而且好得多 我们知道 人们已在生产环境中 使用这些模型 因为旧版Sortformer模型 仅在8月就获得了 超过30万次下载 虽然NVIDIA没有直接说明 但在我看来 他们正在系统地改进这些模型 以构建完整的Nemotron语音模型套件 这完全说得通 因为如果你看看对语音的需求 无论是单用户与智能体交互 智能体获取YouTube视频等多模态内容 等等 以便在研究和执行任务时提取信息作为上下文 需求都在不断增加 好的 如果你是新手 说话人分离到底是什么 最简单的说法是 语音识别告诉你说了什么 而说话人分离告诉你谁说的 当我们把它们结合起来 就得到了所谓的带说话人信息的转录文本 我认为大家凭直觉都知道 这非常重要 如果你在转录会议 有人问了一个问题 然后有些人回答是 有些人回答否 你大概希望你的智能体知道 谁将会跟进 谁不会采取行动 所有这些对于智能体确定 接下来应采取何种行动的上下文 都至关重要 那么它会自动知道每个说话人的名字吗 不 它基本上只会说说话人 一说话人二 说话人三 说话人七等等 随着处理过程进行 但这并不难 你可以写一些代码将其替换掉 一旦你告诉模型谁在说话 你就可以将转入文本 转换为包含真实性能的版本 现在这方面一直最大的挑战之一是 人们会互相打断 对吧 即使他们并不想故意打断 当有人在会议通话中提问时 往往会有两三个人同时回答 旧版说话人分离系统面临的挑战在于 他们会因此变得混乱 他们不擅长区分不同的声音 尤其是在声音重叠时 我想说 我认为没有任何模型能在这件事上做到完美 即使是人类 这也可能是一项艰难的任务 但这些模型的评分方式 是使用所谓的说话人分离错误率 即D.E.R 它基本上是将三种错误相加 模型遗漏的语音 模型误判为非语音的内容 以及将语音错误归属于他人的次数 显然这里的分数越低越好 你可以看到NVIDIA的最新模型 不仅击败了竞争对手 还大幅超越了他们自己的前代模型 这里需要理解的另一个概念 是流逝与离线的区别 在离线模式下 模型可以查看整个录音 包括后面的内容 而在流逝模式下 它必须在音频到达时做出决定 所以对于已经录制好的播客等 你总是希望使用离线模式 对于任何实时字幕或语音智能体 你必须使用流逝模式 好的 那么Nemotron 3说话人分离 到底有什么新特点 它大约有1亿参数量 不包括ASR部分 运行它的最低GPU要求 约为4GB 所以它实际上 可以在许多小型GPU上运行 而且应该在笔记本电脑的 RTX显卡上 也能跑得相当好 我之前提到过 它支持多达8位说话人 另一点是它是语言无关的 并且在流逝和离线模式下 都能工作 所以我认为 最好的办法是直接进入演示 看看它实际上是如何运作的 好的 进入演示 让我先展示一下设置方式 首先 感谢NVIDIA赞助这里的计算资源 我使用DGX Spark 来实际运行这里的三个语音模型 让我带大家过一遍设置架构图 你在这里看到的是NextGS应用 它在我的Mac上本地运行 然后通过Tail Scale调用后端道DGX Spark。 你可以看到,我在上面有一個包含NVIDIA NEMO的Docker容器。 VDI NEMO既提供我們正在討論的說話人分離模型, 也提供ParaKit ASR模型和Nimetron 3.5多语言 ASR模型。 为了使用这些,我设置了一个Fast API应用。 这是一种实现此类功能的简单方法。 如果我要大规模部署,我可能会选择Dynamo或Triton来提供服务。 但对于我想要的功能,目前的设置运行得非常完美。 如果我们进入这个应用,你可以看到我基本上可以直接使用它们的演示。 我可以选择想要使用哪个AS2模型 我打算用ParaKit 因为它在处理多说话人方面 通常表现更好 我可以开始转录 你可以看到字面上只需要三四秒钟 它就处理并转录了这里 一分三十多分钟的音频 由于我之前在摆弄这个并设置了一些名字 它实际上记住了这里这个人的名字 让我们听一下 看看当多个说话人同时说话时会发生什么 为了庆祝Nemotron三说话人分离的发布 我们邀请了另外七位开放文本转语音声音加入派对 我是Chris NVIDIA的Nemotron声音 大家好 谢谢邀请 我是Jane来自QTI的Pocket声音 很高兴见到你们Chris和Jane 我是Serena Quinn三的声音 我是来自Cocorro的Adam 只有8200万参数量 我还是入选了嘉宾名单 你好你好 我是来自Resemble AI的Chatterbox 我带来了富有表现力的能量 嗨 我是来自Nari Labs的John Dyer声音 我们这里已经聚集了很棒的人群 大家好 最近怎么样 我是来自Maya Research的Maya E声音 好了 现在我们有八位合成开放声音 做满了场子 让我们来测试一下Nemotron三说话人分离 好的 新的说话人分离模型 可以在转路时标记我们的每个声音 但它能在我们所有人一起说话时 做到这一点吗 让我们来看看 即使我们互相打断 它也能叫出我们俩的名字 逐针标记 谁在何时说话 好的 正如你在这里看到的 它在转录每一个声音方面 做得很好 如果我们往下看看 可以看到每个声音都被转录了 我想我的UI在这方面 稍微有点滞后 但你完全可以感受到 它是如何组装起来的 实际上 如果我们放大一点 来自QTI的声音 很高兴见到你们 Chris和Jen 我是Serena Queen3的声音 你可以很快看到 我们基本上可以组装出一个能转录这些声音的东西 如果我们想在这里输入他们的名字 它会便利并为我们重命名所有人 现在如果我们想看看实际模型返回的是什么 你可以看到这里是模型返回的原始Jason 我们可以看到这里实际使用的是什么 我们可以看到不同的说话人被标记等 然后这个软件基本上将speaker三重写为Adam等 便利这个过程 做这样的事情 很酷的一点是 我们可以很快 获得统计数据 比如每个人 在那里说了多久 说了多少次 有多少次发言 如果我们想在这里 放入更长的内容 这会非常有用 好的 这里酷的是 我们可以处理长文件 所以我基本上 放入了 All in 播客的 一集完整节目 他们采访了黄仁勋 你可以看到 他基本上已经处理完了 我们得到了输出 我命名了这里的实际说话人 所以我们可以看到 说话人依次出现 现在我们有了每个人 说了什么的完整转录文本 这里酷的是我们可以查看统计数据 我们可以看到他们各自的说话时长 我们可以看到 果然 显然 黄仁勋是这里的嘉宾 所以他是说话最多的 而这一切都在148秒内完成 所以对于这个超过一小时的长文件 这大约花了两分半钟 这让我们基本上可以便利 你可以看到 现在我们基本上可以直接阅读转录文本 我可以将其导出为文本文件 或者在这里导出为srt 这里酷的是 如果我确实想做多语言 或其他类似的事情 我可以切换模型 使用这个模型 而不是这里的paraket模型 你可以看到 用这个模型 我们支持很多不同的语言 如果你记得我做过关于这个的视频 你实际上可以微调这个模型 使其在其他语言上表现非常好 他们在这里称之为适配就绪 现在我还没有真正设置这个应用去做 但模型能做的另一件事 是你也可以进行流逝响应 当然 那样你的准确率可能会下降一点 但你在那里仍然应该能获得相当好的结果 所以 如果你有兴趣做任何语音转录 并且希望其中包含说话人分离等 这是一个很好的设置方法 你可以批量完成所有转路等 最重要的是 能够完全在本地完成所有这一切 所以 如果你对这方面有任何问题 请在评论区告诉我 我认为看到NVIDIA 接下来在这些语音模型上 会做什么将会非常酷 就像我说的 从我看到的来看 它们不断迭代 以改进这些模型 并为不同的用力 提供不同类型的模型 总之 一如既往 如果你觉得视频有用 请点赞并订阅 我们下个视频见 再见