这个世界上有两种人,一种是看有字幕的电视剧,另一种是古怪的人。
开个玩笑,视频隐藏式字幕的重要性不容低估。除了对聋人和听力障碍者至关重要之外,当音频不可用或听不清时,字幕也很重要。也许您正在公共场所观看视频,而音频被环境噪音淹没了。或者视频中说话的人使用的麦克风质量不是最好的,或者说话的口音或方言观众不熟悉。字幕总是一件好事。不幸的是,在直播流中为音频添加字幕很棘手。
在我们深入研究直播流的字幕问题之前,让我们先谈谈语义。您知道隐藏式字幕和副标题这两个术语之间有区别吗?
对话的转录或翻译,适用于声音可用但不被理解的情况(例如,因为用户不理解媒体资源音轨的语言)。叠加在视频上。
该规范将字幕描述为:
对话、音效、相关音乐提示和其他相关音频信息的转录或翻译,适用于声音不可用或听不清的情况(例如,因为声音静音、被环境噪音淹没,或者因为用户失聪).叠加在视频上;标记为适合听力障碍者使用。
这意味着当我们谈论直播视频的“隐藏式字幕”时,我们通常指的是字幕,因为字幕通常包含描述性信息。想一想电视节目中的一个场景,其中一位演员上车离开家并与他们的配偶道别。这个场景的标题可能是“再见,亲爱的。[汽车引擎启动]。”
我们距离让 AI 系统为我们描述这样的上下文信息还差得很远,所以我们只能在直播中添加纯“语音到文本”的字幕;我们可以使用下面的方法来做到这一点。
注意:您会注意到这篇博文的标题和正文使用了术语“字幕”或“隐藏式字幕”,尽管我们在这里真正谈论的是基于上述定义的字幕。不幸的是,由于术语“隐藏式字幕”经常被误用,因此不恰当地使用该术语以帮助开发人员找到这篇博文并了解如何将此功能添加到他们的实时流中是最有意义的。只要知道我们在这里真正谈论的是字幕!
我们在这篇文章中看到的解决方案侧重于广播到 Amazon Interactive Video Service (Amazon IVS) 从
对于这个演示,我选择使用 ratwithacompiler 的OBS-captions-plugin
(
接下来,选择字幕栏中的“齿轮”图标以修改设置。
确保选择了Caption Source ,然后修改插件配置以满足您的需要。例如,我的默认字幕超时设置为15.0
秒,但我发现5.0
秒是一个更好的值。
保存配置并开始新的直播后,该插件会将您的语音转换为文本,并为直播生成所需的字幕信息。
要使用 Amazon IVS 播放器播放字幕数据,我们可以添加一个事件侦听器来侦听TextCue
事件(
ivsPlayer.addEventListener(IVSPlayer.PlayerEventType.TEXT_CUE, (evt) => { console.log(evt); }
上面配置的处理程序将所有传入的TextCue
事件记录到控制台。
TextCue
事件的text
属性包含标题数据。
使用一些 HTML 和 CSS,我们可以将字幕数据呈现为覆盖在<video>
元素上。此实现在很大程度上取决于您的需要,但您应该考虑在指定时间段没有字幕数据后自动隐藏叠加层。
在本文中,我们研究了如何使用 OBS 插件将语音转换为文本并将该文本作为字幕数据发布到 Amazon IVS 直播流中。