首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >音频字幕转录- C++

音频字幕转录- C++
EN

Stack Overflow用户
提问于 2011-08-28 08:51:15
回答 2查看 1.7K关注 0票数 1

我正在做一个项目,在其他与视频相关的任务中,最终应该能够提取视频的音频,并对其应用某种语音识别,并获得视频上所说内容的转录文本。理想情况下,它应该输出某种字幕格式,以便文本链接到视频上的某个点。

我在考虑使用Microsoft Speech API (又名SAPI)。但据我所知,它使用起来相当困难。我为语音识别找到的极少数示例(大多数是用于文本到语音的转换,这可能更容易)表现不是很好(他们不能识别任何东西)。例如这个:http://msdn.microsoft.com/en-us/library/ms717071%28v=vs.85%29.aspx

一些例子使用了一些叫做语法文件的东西来定义识别器正在等待的单词,但是由于我没有对Windows语音识别进行过彻底的训练,所以我认为这可能是在混淆结果。

所以我的问题是。对于这样的事情,最好的工具是什么?你能提供付费和免费两种选择吗?最好的“免费”选项(因为它是随Windows一起提供的)我相信它是SAPI,其余的都应该支付,但如果他们真的很好,可能是值得的。此外,如果您有任何关于在类似的上下文中使用SAPI (或其他API)的好教程,那将是非常棒的。

EN

回答 2

Stack Overflow用户

发布于 2011-08-28 18:35:00

总的来说,这是一个很大的要求!

任何语音识别系统的问题是,它在训练后运行得最好。它需要上下文(期望的单词)和某种音频基准(每个声音听起来像什么)。在某些情况下,这可能是可能的,比如电视连续剧,如果你想为每个角色翻腾几个小时的speech -separated -来训练它。不过,那里有很多工作要做。对于像电影这样的东西,除非你能找到演员,否则很可能没有希望训练一个识别者。

大多数电影和电视制作公司只是雇佣媒体公司来转录字幕,要么使用人工操作员直接转录,要么转换剧本。事实上,他们仍然需要人类参与这些巨大的操作,这表明自动化系统还没有达到这一要求。

在视频中,你有太多的东西让你的生活变得困难,几乎跨越了当前大量的语音技术研究:

-> Multiple Speaker ->“说话人识别”(你能区分字符吗?此外,字幕通常有不同的颜色文本为不同的说话者)

->“鸡尾酒会问题”--你能把两个声音部分分开并同时转录吗?-> Multiple problem->“鸡尾酒会问题”?

-> Background noise ->你可以从任何背景音乐/福利/爆炸直升机中挑选出语音。

语音算法需要非常健壮,因为不同的字符可能具有不同的性别/口音/情感。根据我对当前识别状态的理解,经过一些训练后,您可能能够获得一个说话人,但要求一个程序将所有人都识别出来可能是困难的!

--

据我所知,没有“字幕”格式。我建议使用像Tiresias Screenfont这样的字体来保存文本的图像,这种字体是专门为在这些情况下的易读性而设计的,并使用查找表来对照视频时间码来交叉引用图像(记住NTSC/PAL/Cinema使用不同的时间格式)。

--

市面上有很多专有的语音识别系统。如果你想要最好的,你可能会想要授权一个像Nuance这样的大公司的解决方案。如果你想保持免费,RWTH大学和CMU大学已经提出了一些解决方案。我不知道它们有多好,也不知道它们是否适合这个问题。

--

我能想到的唯一解决方案与你的目标类似,就是你可以在英国的新闻频道上看到的字幕"Live Closed Captioning“。由于它是现场直播的,我假设他们使用某种针对读者训练的语音识别系统(尽管它可能没有经过训练,我不确定)。在过去的几年里,它变得更好了,但总的来说,它仍然很差。它最大的问题似乎是速度。对话通常是非常快的,所以实时字幕有一个额外的问题,就是及时完成所有的事情。实时隐藏字幕经常被落在后面,不得不错过许多内容来跟上进度。

你是否必须处理这个问题取决于你是否会为“实况”视频添加字幕,或者你是否可以对其进行预处理。要处理上面的所有其他复杂情况,我假设您需要对其进行预处理。

--

尽管我讨厌引用大的W,但还是有一个有用的链接here的金矿!

祝你好运:)

票数 2
EN

Stack Overflow用户

发布于 2011-08-30 23:18:46

这属于听写的范畴,这是一个非常大的词汇量任务。像Dragon这样的产品自然非常好,并且为开发人员提供了SAPI接口。但这并不是一个简单的问题。

通常,听写产品是指单个扬声器,并且最好的产品自动适应于该扬声器,从而改进基础声学模型。它们还具有复杂的语言建模,通过限制词汇表的困惑,在任何给定的时刻都可以约束问题。这是一种奇特的方式,意思是系统正在弄清楚你在说什么,因此什么类型的单词和短语可能会出现,或者不可能出现。

不过,将一个非常好的听写系统应用到您的录音中并看看它做得有多好,这将是一件有趣的事情。我对付费系统的建议是让Dragon自然地从Nuance中发言,并获得开发人员的API。我相信这提供了一个SAPI接口,它的好处是允许您在Microsoft语音或任何其他支持SAPI的ASR引擎中进行切换。IBM将是另一个值得关注的供应商,但我认为你不会比Dragon做得更好。

但是它不会工作的很好!在集成了ASR引擎的所有工作之后,你可能会发现你得到了一个相当高的错误率(可能是一半)。这是由于这项任务中的几个主要挑战:

1)多个扬声器,这会降低声学模型和适应性。2)背景音乐和音效。

3)混杂的语言--人们互相交谈。4)任务缺乏良好的语言模型。

对于1)来说,如果你有一种方法将每个参与者分隔在一个单独的轨道上,那将是理想的。但是,对于语音识别器来说,没有一种可靠的方法可以自动分离说话人。如果每个说话者的音调明显不同,你可以尝试音调检测(有一些免费软件可以做到这一点),并基于此进行分离,但这是一项复杂且容易出错的任务。)最好的做法是手动编辑演讲者,但您也可以在这一点上手动转录演讲!如果你可以让演员在不同的轨道上,你将需要使用不同的用户配置文件运行ASR。

对于音乐(2),你要么抱着最好的希望,要么试着把它过滤掉。语音比音乐更受带宽限制,因此您可以尝试使用带通滤波器,它可以衰减除语音频带之外的所有内容。你可能想尝试一下截止频率,但我猜100 to到2-3 3KHz就能让语音听得很清楚了。

对于(3),没有解决方案。ASR引擎应该返回置信度分数,所以我最多会说,如果你可以标记低分数,那么你就可以返回并手动转录这些语音片段。

(4)对于言语科学家来说,这是一项复杂的任务。您最好的选择是搜索为电影主题创建的现有语言模型。实际上,你可以和Nuance或IBM谈谈。也许他们可以给你指个正确的方向。

希望这能有所帮助。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7218354

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档