唇语识别技术的开源教程,听不见声音我也能知道你说什么!

简介:

唇语识别并非最近才出现的技术,早在 2003 年,Intel 就开发了唇语识别软件 Audio Visual Speech Recognition(AVSR),开发者得以能够研发可以进行唇语识别的计算机;2016 年 Google DeepMind 的唇语识别技术就已经可以支持 17500 个词,新闻测试集识别准确率达到了 50% 以上。

2cb321c0f76cfbcfcab5986882b8767fa2b1e560

大家一定很好奇唇语识别系统要怎么实现。Amirsina Torfi 等人实现了使用 3D 卷积神经网络的交叉视听识别技术进行唇语识别,并将代码托管到 GitHub 上开源:

传送门:

https://github.com/astorfi/lip-reading-deeplearning

接下来就为大家介绍如何使用 3D 卷积神经网络的交叉视听识别技术进行唇语识别,完整的论文可参阅:

https://ieeexplore.ieee.org/document/8063416

下面是进行唇语识别的简单实现方法。

7e739554e6ec3f80c4985861cab6bee4295133af

用户需要按照格式准备输入数据。该项目使用耦合 3D 卷积神经网络实现了视听匹配(audio-visual matching)。唇语识别就是这个项目的具体应用之一。

概况

当音频损坏时,视听语音识别(Audio-visual recognition,AVR)被认为是完成语音识别任务的另一种解决方案,同时,它也是一种在多人场景中用于验证讲话人的视觉识别方法。AVR 系统的方法是利用从某种模态中提取的信息,通过填补缺失的信息来提高另一种模态的识别能力。

问题与方法

这项工作的关键问题是找出音频和视频流之间的对应关系。我们提出了一种耦合 3D 卷积神经网络架构,该架构可以将两种模式映射到一个表示空间中,并使用学到的多模态特征来判断视听流间的对应关系。

如何利用 3D 卷积神经网络

我们提出的该架构将结合时态信息和空间信息,来有效地发现不同模态的时态信息之间的相关性。我们的方法使用相对较小的网络架构和更小的数据集,并在性能上优于现有的视听匹配方法,而现有方法主要使用 CNN 来表示特征。我们还证明了有效的对选择(pair selection)方法可以显著提高性能。

代码实现

输入管道须由用户提供。其余部分的实现包含基于话语的特征提取的数据集。

唇语识别

就唇语识别来讲,必须将视频作为输入。首先,使用 cd 命令进入相应的目录:

4071c63562807259c8d6f1f14907b20165e3211b

运行专用的 python file 如下:

1785a689f7c877d301fa61b27703166ebd0548a1

运行上述脚本,通过保存每个帧的嘴部区域来提取唇部动作,并在画框圈出嘴部区域来创建新的视频,以便进行更好的可视化。

所需的 arguments 由以下 Python 脚本定义, VisualizeLip.py 文件中已定义该脚本:

928961e313a204d34efe2732b69e2d390038808a

一些已定义的参数有其默认值,它们并不需要进一步的操作。

处理

视觉部分,视频通过后期处理,使其帧率相等,均为 30f/s。然后,使用 dlib 库跟踪视频中的人脸和提取嘴部区域。最后,所有嘴部区域都调整为相同的大小,并拼接起来形成输入特征数据集。数据集并不包含任何音频文件。使用 FFmpeg 框架从视频中提取音频文件。数据处理管道如下图所示:

0c45fd46b3d5027f833e2b083a7222cf06f4ce7a

输入管道

我们所提出的架构使用两个不相同的卷积网络(ConvNet),输入是一对语音和视频流。网络输入是一对特征,表示从 0.3 秒的视频中提取的唇部动作和语音特征。主要任务是确定音频流是否与唇部运动视频在所需的流持续时间内相对应。在接下来的两个小节中,我们将分别讲解语音和视觉流的输入。

语音网络(Speech Net)

在时间轴上,时间特征是非重叠的 20ms 窗口,用来生成局部的频谱特征。语音特征输入以图像数据立方体的形式表示,对应于频谱图,以及 MFEC 特征的一阶导数和二阶导数。这三个通道对应于图像深度。从一个 0.3 秒的视频剪辑中,可以导出 15 个时态特征集(每个都形成 40 个 MFEC 特征),这些特征集形成了语音特征立方体。一个音频流的输入特征维数为 15x40x3。如下图所示:

42830010b905cd68fbedcb2a1651dcbbadacfb8d

语音特征使用 SpeechPy 包进行提取。

要了解输入管道是如何工作的,请参阅:

code/speech_input/input_feature.py

视觉网络(Visual Net)

在这项工作中使用的每个视频剪辑的帧率是 30 f/s。因此,9 个连续的图像帧形成 0.3 秒的视频流。网络的视频流的输入是大小为 9x60x100 的立方体,其中 9 是表示时态信息的帧数。每个通道是嘴部区域的 60x100 灰度图像。

cb55459398590da6c5b883c0925d117258200e49

架构

该架构是一个耦合 3D 卷积神经网络,其中必须训练具有不同权重的两个网络。在视觉网络中,唇部运动的空间信息和时态信息相结合,以此来利用时间相关性。在音频网络中,提取的能量特征作为空间维度,堆叠的音频帧构成了时间维度。在我们提出的 3D 卷积神经网络架构中,卷积运算是在连续的时间帧上对两个视听流执行的。

3a93b07a8aba53cd2f84e59c03b7818e06d8aa37

训练 / 评估

首先,克隆存储库。然后,用 cd 命令进入专用目录:

60b31d2cbd69fc2c906ed87985eafd55e822fd7e

最后,必须执行 train.py 文件:

13431813a79b18e4fd58b200c0dff3cb9bf9026d

对于评估阶段,必须执行类似脚本:

1c4594e714fb02fc46e0f7c97c4d210ffdd43054

运行结果

下面的结果表明了该方法对收敛准确度和收敛速度的影响。

d1cdc6317acd7494983cef6ef6e40296b88dec23

最好的结果,也就是最右边的结果,属于我们提出的方法。

fcc050e2a64180acdcd8d9b5eb626e9fb88896e7

所提出的在线对选择方法的效果如上图所示。

分析到这,希望大家可以到 Github 上找到源码,开始练起!附上作者给的代码演示。


原文发布时间为:2018-11-6

本文作者:Amirsina Torfi等

本文来自云栖社区合作伙伴“磐创AI”,了解相关信息可以关注“磐创AI”。

相关文章
|
1月前
|
人工智能 数据可视化 搜索推荐
Katalist官网体验入口 生成式AI视觉故事板工具
【2月更文挑战第26天】Katalist官网体验入口 生成式AI视觉故事板工具
51 4
Katalist官网体验入口 生成式AI视觉故事板工具
|
达摩院 语音技术
使用ModelScope社区搭建一个录音情感识别小应用
本文介绍通过ModelScope来完成“语音情绪识别”这一应用,该应用使用两个模型: ● 语音转文本(ASR):paraformer模型 ● 文本情绪识别:达摩院StructBERT中文情感分类模型
1575 3
|
1月前
|
人工智能 搜索推荐 语音技术
有道开源的国产语音库EmotiVoice爆火了!具有情绪控制功能的语音合成引擎!
有道开源的国产语音库EmotiVoice爆火了!具有情绪控制功能的语音合成引擎!
|
1月前
|
人工智能 编解码 数据安全/隐私保护
才发现百度自带的AI图片助手这么好用,去水印、画质优化、AI扩图、涂抹消除等功能一应俱全!
才发现百度自带的AI图片助手这么好用,去水印、画质优化、AI扩图、涂抹消除等功能一应俱全!
199 0
|
3月前
|
人工智能 编解码 Java
用户投稿:这款 AI 编码工具 CodeFuse 很惊艳
在 AI 时代,总是会迅速出现很多惊艳的产品工具,这些效率工具,在很大程度上推动了科技的进步。特别是在编程领域,各类工具更是层出不穷,从 GitHub Copilot 到 CodeGeeX,再到通义灵码,有很多工具在不断涌现。今天,我想和大家分享一款我最近发现的、非常出色的编程辅助工具 —— CodeFuse。
161 0
用户投稿:这款 AI 编码工具 CodeFuse 很惊艳
|
8月前
|
人工智能 机器人 语音技术
神器 | 全新AI配音工具,专治普通话不标准!
比如:上面的视频中,给大家演示了三种配音场景——儿童故事、伤感文字、新闻播报。你听出来了吗?
349 1
|
9月前
|
开发工具 计算机视觉 文字识别
接入阿里视觉智能平台免费体验—人脸人体识别ocr与二次元风格转化使用
接入阿里视觉智能平台免费体验—人脸人体识别ocr与二次元风格转化使用
21242 4
接入阿里视觉智能平台免费体验—人脸人体识别ocr与二次元风格转化使用
|
9月前
|
人工智能 编解码 API
C# 10分钟完成百度语音技术(语音识别与合成)——入门篇
C# 10分钟完成百度语音技术(语音识别与合成)——入门篇
|
10月前
|
语音技术 信息无障碍
直播源码搭建平台技术知识:实时语音识别字幕呈现功能
回到我们的直播源码平台开发上来,对于直播源码平台来说实时语音识别字幕呈现功能也是重要的功能之一,好了,正式进入我们今天的主题内容:直播源码搭建平台技术知识:实时语音识别字幕呈现功能!
直播源码搭建平台技术知识:实时语音识别字幕呈现功能
|
11月前
|
机器学习/深度学习 人工智能 并行计算
声音好听,颜值能打,基于PaddleGAN给人工智能AI语音模型配上动态画面(Python3.10)
PaddlePaddle是百度开源的深度学习框架,其功能包罗万象,总计覆盖文本、图像、视频三大领域40个模型,可谓是在深度学习领域无所不窥。 PaddleGAN视觉效果模型中一个子模块Wav2lip是对开源库Wav2lip的二次封装和优化,它实现了人物口型与输入的歌词语音同步,说白了就是能让静态图的唇部动起来,让人物看起来仿佛正在唱歌。 除此以外,Wav2lip还可以直接将动态的视频,进行唇形替换,输出与目标语音相匹配的视频,如此一来,我们就可以通过AI直接定制属于自己的口播形象了。
声音好听,颜值能打,基于PaddleGAN给人工智能AI语音模型配上动态画面(Python3.10)