节点.js 的 ai- coustics LiveKit 插件
[尖叫声] 此套件已贬值,不再保留. 使用
@ai-coustics/livekit-extras页:1VAD, (中文(简体) ),Analyzer,以及FrameProcessorChain。使用官员@livekit/plugins-ai-coustics用于语音增强的软件包。 你可以一起安装两个软件包:npm uninstall @ai-coustics/livekit-plugin npm install @livekit/plugins-ai-coustics @ai-coustics/livekit-extras
旧 新设 @ai-coustics/livekit-plugin@ai-coustics/livekit-extrasProcessor@livekit/plugins-ai-cousticspcm16ToFloat32, (中文(简体) ),float32ToPcm16删除 关于所有步骤,请参考 移徙指南。 。 。 .
公众支持的LiveKit代理的音频增强、语音活动检测和音频质量分析
@ai-coustics/aic-sdk 软件包.
[大 官员
@livekit/plugins-ai-coustics软件包是大多数应用程序推荐的集成路径。 它支持LiveKit Cloud, 并且, 更深入地融入了LiveKit生态系统和工具,并提供了更强的稳定性 保证。 避免中断更改是官方插件的明确目标.这个有声器的套装是跟随更快的放出 球队设计的 想要早日获得最新的相声模型和产品特性。 其中一些 能力可能是实验性的,可能会有变化,使用这个软件包的费用是计费的 单独通过相声。 当早期采用新的声学能力时选择它 对您的申请很重要.
安装
此软件包是替代
@livekit/plugins-ai-coustics,不是它的延伸。 狦 选择迁移, 解开正式软件包, 不混合两个对象 执行.
npm uninstall @livekit/plugins-ai-coustics
npm install @ai-coustics/livekit-plugin
export AIC_SDK_LICENSE=...
从正式的 LiveKit 插件中迁移
替换软件包导入并更新以下 API :
| 官方 LiveKit 插件 | 这个包 |
|---|---|
audioEnhancement(...) | new Processor({ model }) |
EnhancerModel.* | 一个SDK Model 从提供模式文件装入 |
modelParameters 或者说 updateModelParameters(...) | processor.getContext().setParameter(...) |
vad() 财务报告和审定财务报表 vadSettings | new VAD({ model, vadParameters }) |
Auth.livekitCloud() 或者说 Auth.aiCousticsApi(...) | AIC_SDK_LICENSE 或者说 licenseKey |
在此之前:
import * as aic from "@livekit/plugins-ai-coustics";
const processor = aic.audioEnhancement({ model: aic.EnhancerModel.QuailL });
const vad = aic.vad();
装入SDK型号如下:
import { FrameProcessorChain, Processor, VAD } from "@ai-coustics/livekit-plugin";
const processor = new Processor({ model: enhancementModel });
const vad = new VAD({ model: vadModel });
const frameProcessor = new FrameProcessorChain(vad.processor, processor);
这个包仍然使用专用的SDK VAD模型. 和官方插件一样,推论在
RoomIO帧处理器路径和VAD流会消耗帧元数据. 单独提供一个 VAD
模型和安装 vad.processor 如下文所述。 LiveKit 云认证未携带
完结;在移民前获得有声SDK许可证.
示范条文
在部署或容器设置时下载模型 :
import { Model } from "@ai-coustics/livekit-plugin";
const enhancementPath = await Model.download("quail-vf-2.2-l-16khz", "./models");
const vadPath = await Model.download("vad-2.1-xxs-16khz", "./models");
const analysisPath = await Model.download("tyto-1.1-l-16khz", "./models");
增强和VAD模型是不同的模型类型. 将返回的路径提供给您 工人,然后在每个工人工序上装入每个型号:
const enhancementModel = Model.fromFile(enhancementPath);
const vadModel = Model.fromFile(vadPath);
const analysisModel = Model.fromFile(analysisPath);
使用量
创建一个 Processor 财务报告和审定财务报表 VAD 每个代理会话:
import { voice } from "@livekit/agents";
import { FrameProcessorChain, Processor, VAD } from "@ai-coustics/livekit-plugin";
const processor = new Processor({ model: enhancementModel });
const vad = new VAD({ model: vadModel });
const frameProcessor = new FrameProcessorChain(vad.processor, processor);
const session = new voice.AgentSession({
vad,
// ... stt, llm, tts
});
await session.start({
// ... agent, room
inputOptions: { noiseCancellation: frameProcessor },
});
vad.processor 必须安装在 noiseCancellation 当使用 VAD 时, 路径。 放进去
首先在链中运行,所以在增强前运行在原有的麦克风音频上. 所有 VAD 流
读取由此产生的不可变元数据,所以SDK模型每个音频块只运行一次.
对于 VAD 不增强, 使用 noiseCancellation: vad.processor在无 VAD 增强时,
使用情况 noiseCancellation: processor。 。 。 .
音频质量分析
创建一个 Analyzer,将其收藏器安装在 RoomeIO 的音频路径上,并订阅其结果:
import { Analyzer } from "@ai-coustics/livekit-plugin";
const analyzer = new Analyzer({
model: analysisModel,
analysisInterval: 5, // seconds; 5 is the default
});
analyzer.on("analysisResult", (event) => {
console.log(event.result.riskScore);
});
await session.start({
// ... agent, room
inputOptions: { noiseCancellation: analyzer.collector },
});
这个 Analyzer 接收音频通过 analyzer.collector; 构建无
安装它的收发器不会输入任何房间音频.
结果不会被插件记录;在回调中日志或处理.
组合帧处理器
使用 FrameProcessorChain 运行同一 RoomIO 音频路径中的任何处理器。 对于
例如,这将 VAD 对原始输入的推论和分析推导到增强前 :
import { FrameProcessorChain } from "@ai-coustics/livekit-plugin";
const frameProcessor = new FrameProcessorChain(
vad.processor,
analyzer.collector,
processor,
);
await session.start({
// ... agent, room
inputOptions: { noiseCancellation: frameProcessor },
});
FrameProcessorChain 运行它的处理器。 保留 vad.processor 首先,它说明
原始框架同时保留其音频 。 我们建议放置 analyzer.collector 在此之前
processor; 测量原始输入使了解输入音频质量如何影响
其余的管道.
这还是LiveKit的 noiseCancellation 作为临时整合的插槽。 客厅IO拥有
链并关闭处理器,收集器,分析器一起.
分析推论运行在工人线上,所以它从来不会阻断代理的事件回路. 如果你拥有
a 一个 Analyzer 在室外, analyzer.close() 返回一旦在飞行中解决的承诺
分析已经确定,SDK会话已经发布;等待是可选的.
配置
通过处理器上下文设置增强级别,并配置所有 SDK VAD 参数 瓦德工厂:
import { ProcessorParameter } from "@ai-coustics/livekit-plugin";
processor.getContext().setParameter(ProcessorParameter.EnhancementLevel, 0.8);
vad.setParameters({
sensitivity: 0.5,
speechHoldDuration: 0.25,
minimumSpeechDuration: 0.05,
});
SDK VAD 参数持续时间(speechHoldDuration 财务报告和审定财务报表 minimumSpeechDuration)在
秒数。 这个 VAD 构造器选项 prefixPaddingDuration 财务报告和审定财务报表 maxBufferedSpeech 指定
以毫秒计。 见
节点.js SDK 参考 财务报告和审定财务报表
VAD 指南 参数范围,
模型支持和进一步细节.
设定 AIC_SDK_LICENSE 或通过 licenseKey 给建筑师。 为每个进程创建新处理器
同室; RoomIO用输入流关闭.
必须明确规定模式。 此软件包不支持
npx livekit-agents download-files。 。 。 .