集成商与视听

送音频进来,取 翻译后的声音。

实时,而且是在你已经有的那条流里。跑一场大会的同一个引擎,用你的设备本来就会说的协议就能够到。

一处真实的安装

圣地亚哥-德孔波斯特拉主教座堂:厅里放一台设备,音频送往引擎,翻译抵达听众的手机。连续五个多小时,而且是在最难对付的声学环境之一里。

怎么接进去

三块,中间那块不用你操心。

你的音频

经 SRT 的连续流;如果说话的是一部已经登录的手机,就走 WebRTC。

引擎

听一遍,出全部语言

音频只听一遍,所有目标语言都从这一遍里出来。没有哪一种要排在另一种后面。

声音和文本

翻译后的声音经 WHIP 进你自己的 WebRTC;文本是每翻译一句一个 HTTP POST。

在单个节点上并行十四种语言,端到端 812 毫秒。

音频从哪里 进去。

一个正在说话的场地不发文件:它发的是连续的流,而且必须在一个会丢包的网络上一直发下去。SRT 就是为此而在。

  • 拨号的是你的设备。创建房间时会把整条 URL 拼好还给你——主机、端口、设备标识和口令。
  • MPEG-TS 容器里的 Opus,单声道,16 kHz,24 kbps 上下。这是说话不是音乐,多出来的带宽买不到任何你听得出来的东西。
  • 口令按设备发放,且不是可选的:没有加密的连接会被拒绝,别的做得再对也没用。十个字符是 SRT 自己的下限,不是我们的。
  • 连续地发,把不连续传输关掉。一条在静音时停下的流,会吃掉重新让它开口的那句话的开头。

连接 URL,房间就是这样还给你的

srt://HOST:8890?streamid=DEVICE_ID&mode=caller&latency=120&passphrase=SECRET

我们自己的设备跑的那条流水线

测你自己那台最短的路,就是把这一段照原样跑一遍。线路输入常常比麦克风来得轻:如果你那边偏小,加一级音量,而不是把编码器往死里压。

gst-launch-1.0 -e \
  alsasrc device=plughw:CODEC,0 ! audioconvert ! audioresample ! \
  audio/x-raw,rate=16000,channels=1 ! \
  opusenc bitrate=24000 ! mpegtsmux ! \
  srtsink uri="srt://HOST:8890?streamid=DEVICE_ID&mode=caller&latency=120&passphrase=SECRET"

另一个入口是 WebRTC。当说话的是一部已经登录的手机时用它:没有什么要安装,也没有什么用来认证,所以房间不会返回凭据。

又从哪里 出来。

如果你已经有 WebRTC 的基础设施——视频平台、活动应用、导播间——不必进我们的房间才能拿到翻译。给我们一个 WHIP 端点,我们往那里推。

  • 每一种目标语言都是自己的一个 WHIP 会话。WHIP 端点是允许只接一路音频的,而且很多确实如此,所以五种语言塞进一个会话会当成一种到达,另外四种悄无声息地没了。
  • 在 URL 里放上语言占位符,每种语言就有自己的路径;不放,语言就作为查询参数传过去。两种方式你这边都分得开,而你必须分得开。
  • 如果你设了令牌,会作为 Authorization Bearer 头发出;一段发言结束时我们会删掉会话资源,不留下任何还占着连接的东西。
  • 默认这是在房间之外另加的:你的听众照常工作,你自己的设备也拿得到音频。设成唯一目的地,房间就不再被使用。

端点的两种写法

delivery.whip.url = https://you.example.com/ingest/{lang}/whip   → …/ingest/en/whip
delivery.whip.url = https://you.example.com/whip                 → …/whip?lang=en

文本是分开走的,这不是小事

WHIP 只搬媒体,别的都不搬——协议里没有数据通道——所以字幕不可能夹在音频里过来。给我们一个 URL,我们每翻译一句就 POST 一次,带上房间、片段、从哪种语言来、到哪种语言去。谁按照“文本会跟音频一起到”来搭,谁就会在活动当天知道。

开箱就能对接的

这些是规范里点了名的,不是一堵标志墙。对于下游只会说 RTMP 或 SRT 的东西,前面摆一台 MediaMTX 就能从 WHIP 搭桥,我们两边都不用写代码。

LiveKitJanusMediaMTXSRSAnt MediaCloudflare

这不是 API 参考文档,而这个区别很要紧

这是通往同一个引擎的两扇门,走错一扇要赔上一天。这一扇是把媒体流送过去用的。另一扇是照着它写代码用的。

这一页

你已经有音频在流动,你要的是让翻译在这股流动里面。你需要的是一个端口、一个编解码器和一个可以推流过去的地方。

API 参考文档

你在写代码:建房间、上传录音、按想要的格式取结果、决定谁可以发言。一个接口一个接口地写清楚,例子粘上就能跑。

去看参考文档
  • 两者在一个地方交汇:WHIP 端点和文本 URL 是房间的设置,而房间是通过 API 建的。

  • 端到端时延是 812 毫秒——完整的一趟,从有人开口到别人听见翻译。

  • 十四种语言出自对音频的一次收听,所以第十四种就是第十四种的价钱,不是第一种的十四倍。

集成与处理任务: 散装分钟

用于房间直播或处理文件。无月费:你购买分钟,随翻译逐步消耗。自购买之日起十二个月内有效,而且每个套餐都是同一个引擎、同样的十四种语言。

7,0分钟计入
17/60
分钟会议

带颜色的是说话的时间

静音 · 计数停住

41人在听

不计入

一小时的会议,说话 20 分钟,计入的也是 20 分钟。

€20+ 增值税

几场活动,或者拿真实素材试一次。

开始
100 分钟
翻译成一种语言的语音
每分钟 €0.20
没有月费,十二个月内有效
参照价格
≈ 1 场礼拜
每场一小时、40 分钟讲话、四种语言
十四种语言
来自同一段音频,同时进行

€85+ 增值税

每周一次的礼拜,以及整个季节。

开始
500 分钟
翻译成一种语言的语音
每分钟 €0.17
没有月费,十二个月内有效
−15%
相对零买价的折扣
≈ 6 场礼拜
每场一小时、40 分钟讲话、四种语言
十四种语言
来自同一段音频,同时进行
最多人选

€300+ 增值税

每周都在用的多个房间。

开始
2,000 分钟
翻译成一种语言的语音
每分钟 €0.15
没有月费,十二个月内有效
−25%
相对零买价的折扣
≈ 24 场礼拜
每场一小时、40 分钟讲话、四种语言
十四种语言
来自同一段音频,同时进行

€675+ 增值税

几乎每天都在直播的场所。

开始
5,000 分钟
翻译成一种语言的语音
每分钟 €0.135
没有月费,十二个月内有效
−32.5%
相对零买价的折扣
≈ 60 场礼拜
每场一小时、40 分钟讲话、四种语言
十四种语言
来自同一段音频,同时进行

所有套餐都包含,无一例外

  • 全部十四种语言,来自同一段音频
  • 想建多少房间就建多少
  • 录音、文档和字幕
  • 完整 API 和你自己的密钥
  • 每次购买一张发票,含你的税务信息
  • 直播房间不留任何录音

落地陪跑另行报价

按分钟付的是引擎,不是人工工时。凡是需要我们的人跟进的,都另行报价:

  • 上线:接好你的 SRT 或 WebRTC,检查你的方案
  • 活动当天在线支持
  • 按你的流程做定制开发
  • 部署到你自己的网络里
向我们索取报价

或者你想要的任何金额

每分钟 0,20 €,没有批量折扣——那是套餐的用处。10 € 到 5.000 € 之间,付款一通过就进账户。

前 30 分钟我们请客

保存一张卡,分钟数就在你的账户里。不会扣任何钱,卡片页面上写的也是 0 €——卡放在那里,是为了你哪天想一键充值,不是为了悄悄扣你的钱。 有效期三个月:是拿来试的,不是拿来存的。

和工程团队聊

四个字段,不问月用量——到这一步谁也不知道。告诉我们你面前有什么,回信的是接过这套东西的人。

只有你们那里才用的词

一个机构自己的名字——人名、街名、编号、职务——正是通用模型从没听过的东西,也正是它出错的地方:它会换成一个听起来差不多的普通词。写一次,就不再出错。 写在会议室里,对它的所有会议都生效。

  • 这是一份清单,不是训练:写下来,从第一句话就生效。
  • 它什么都不收集。不收你的音频,不收你的文本,一秒都不收。
  • 而且是包含在内的。不是额外的套餐,也不是账单上的一行。