综合设计——多源异构数据采集与融合应用综合实践

发布时间 2023-12-14 22:36:59作者: 白炎273592
这个项目属于哪个课程 2023数据采集与融合技术 (福州大学 - 福州大学计算机与大数据学院)
组名、项目简介 组名:你在跟我作队
项目需求:(1)音视频转文字准确性 (2)实时性 (3)多语种支持 (4)扩展性
项目目标:①搭建轻量级网站平台提供交互。②利用大模型及第三方库解析音视频及图片。③性能测试及优化
项目开展技术路线:(1)HTML/CSS/JavaScript前端编写(2)Python flask请求处理、URL路由、模板渲染,快速搭建轻量级交互式web。(3)Whisper大模型解析视频,多语言语音识别、翻译。pytesseract库及Tesseract识别引擎提取图片文字。
团队成员学号 组长:陈星宇 102102135
组员:
冯展  052101102
王剑瑜 102102113
吴钦堋 052106102
李嘉骏 102102122
戴坤松 032004111
这个项目的目标 (1)搭建轻量级网站平台。(2)输入视频网址,利用大模型解析视频,将音视频转文字,概括视频主要内容,同时获取评论,提炼观看者对视频内容看法。输入图片网址,提取图片上文字。(3)将上述处理结果通过搭建的web网页进行交互式输入输出。(4)性能测试与优化,提高转文字准确性,实时性,多语种,可扩展性和灵活性
其他参考文献 《语音识别技术的研究与发展》
《基于深度学习的语音识别研究》
《Whisper: A Self-supervised Speech Pre-training Method》
《Large-scale Weakly Supervised Pre-training for Speech Recognition》
《Improving the Robustness of Whisper with Domain-Adaptive Training》

具体任务

汇报、测试、调研

需求分析

在视频总结方面,用户有以下需求:

视频摘要/概述生成:用户需要对长时间的视频进行压缩和摘要,以便于快速了解视频内容。

关键词提取:用户需要从视频中提取关键词,以便于快速了解视频主题或内容。

文字转语音/语音转文字:用户需要将视频中的文字转换为语音或将语音转换为文字,以便于在不方便查看视频时获取视频信息。

文本信息是最直接的信息,不管对于视频总结摘要还是最终呈现给用户,文字都是最简短的。
考虑到目前大部分视频网站上的视频存在内置字幕、无字幕等问题优先考虑从视频中直接获取音频再将音频转为文本。

工具及算法调研

视频音频提取

可选择的有:
音频提取工具:如FFmpeg或Librosa
视频解码器:FFmpeg、OpenCV等
音频特征提取算法:如STFT、MFCC、声谱图等
预训练模型:如DeepSpeech、LAS等

在本次项目中,我们选择使用FFmpeg作为音频提取工具。

FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。采用LGPL或GPL许可证。它提供了录制、转换以及流化音视频的完整解决方案。它包含了非常先进的音频/视频编解码库libavcodec,为了保证高可移植性和编解码质量,libavcodec里很多code都是从头开发的。

相比其他工具FFmpeg有着跨平台性、较稳定、高性能的特点,同时其开源免费和可扩展的特性深受我们青睐。
FFmpeg本身并不直接使用深度学习或特定的模型进行多媒体处理。它主要是一个基于算法和编解码库的多媒体处理工具,用于处理音频、视频等多媒体数据。

音频转文本

循环神经网络转录(RNN Transducer):这是一种基于循环神经网络结构的端到端模型,能够直接从音频信号生成对应的文本输出。RNN Transducer 模型在处理变长序列和语音识别任务中表现出良好的性能。
卷积神经网络-循环神经网络混合模型(CNN-RNN Hybrid Model):该模型结合了卷积神经网络(CNN)和循环神经网络(RNN)的优势。CNN 主要用于提取音频特征,而 RNN 用于建模上下文信息和生成文本输出。
递归卷积神经网络(Recursive Convolutional Neural Network):这是一种高效的模型,通过递归卷积操作捕捉长期依赖关系,用于处理音频序列中的上下文信息。
Transformer 模型:Transformer 是一种基于自注意力机制的模型,广泛应用于自然语言处理任务。在音频转文本任务中,可以将声学特征序列看作是一个时间序列,利用 Transformer 模型进行序列建模和生成文本输出。
whisper是OpenAI 最近发布的语音识别模型。OpenAI 通过从网络上收集了 68 万小时的多语言(98 种语言)和多任务(multitask)监督数据对 Whisper 进行了训练,whisper可以执行多语言语音识别、语音翻译和语言识别。

whisper的多语言特性是我们选择它的原因。
它使用深度学习技术进行语音识别,采用了Transformer架构,这是一种基于自注意力机制的深度学习模型。
Transformer 是一种基于自注意力机制的深度学习模型,最初被提出用于自然语言处理任务,如机器翻译。然而,由于其在序列建模方面的优势,Transformer 也被广泛应用于音频处理任务中,包括自动语音识别。
Transformer 模型的核心是自注意力机制(self-attention),它允许模型在输入序列中的不同位置之间建立连接和关联。相比于传统的循环神经网络(RNN)模型,Transformer 能够并行处理输入序列,从而加快训练和推理的速度。
在音频处理中,Transformer 模型通常用于将声学特征表示(如梅尔频谱图)作为输入,然后通过多个层次的自注意力和前馈神经网络进行处理。这些层次的堆叠能够捕捉到输入序列中的长期依赖关系,并生成对应的文本输出。
与其他模型相比,Transformer 模型具有以下优点:
并行计算:由于自注意力机制的并行性质,Transformer 可以同时处理整个输入序列,而不是逐步处理。这使得训练和推理过程更高效。
长期依赖建模:自注意力机制允许模型在生成每个位置的输出时,同时关注输入序列的其他位置。这有助于捕捉到长期依赖关系,对于音频处理中的上下文信息非常有用。
模块化和可扩展性:Transformer 模型由多个层次组成,每个层次都可以独立地进行训练和调整。这种模块化的结构使得模型更易于扩展和修改。
尽管 Transformer 在自动语音识别任务中表现出良好的性能,但其计算资源要求较高。因此,在实际应用中,通常会使用一些技术手段来减少模型的复杂度,如子采样等。

在Whisper模型中,输入的语音信号首先被转换为音频谱图,这是对语音信号的一种特征表示。然后,这些谱图被传递到编码器中,编码器将它们转换为一组向量。这些向量代表语音信号的语义内容。接下来,解码器被训练来预测相应的文本,它将使用这些向量和特殊的标记进行预测。
通过这种方式,Whisper模型能够将语音信号转换为文本形式,从而实现语音到文本的转换。这种转换在许多应用中都非常有用,例如自动语音识别、语音搜索、语音转写等等。
需要注意的是,Whisper模型的训练需要大量的标记数据,这些数据通常是由人类专业人员手动注释的。因此,在训练这种模型时,数据的质量和数量都是非常重要的因素。此外,由于深度学习模型的复杂性和计算资源要求较高,因此在大规模数据集上训练Whisper模型需要大量的计算资源和时间。

相比于其他类似的语音识别模型,Whisper模型具有以下几个优势:

更好的适应性和鲁棒性:Whisper利用了海量且多样化的数据集来训练模型,使其具有更好的适应能力和鲁棒性,可以处理更加复杂的语音场景,包括口音、背景噪音和技术语言等。
采用弱监督学习方法:Whisper采用了弱监督学习的方法,相比于传统的监督学习,这种方法并不需要完全标注的数据集,而是利用部分标注的数据来进行训练。这种方法可以大大减少人工标注数据的成本,并且可以利用更多的数据进行训练,从而提高模型的性能和鲁棒性。
更高的性能:Whisper模型在英语语音识别方面表现出了接近人类水平的鲁棒性和准确性。
生成对话文本和预测对话行为:Whisper可以利用类似于GAN的方式来生成对话文本,同时还可以预测对话场景和对话行为,从而更好地理解用户意图,提供更智能、自然的对话体验。

测试







测试中遇到的问题

1.由于python本身存在Whisper包用于处理Whisper数据库文件,Whisper是Graphite项目使用的一种时间序列数据库格式。该模块提供了一系列操作Whisper数据库文件的方法,包括创建新文件、更新数据、合并、比较等。
故在使用openai-whisper时要使用:
pip install -U openai-whisper -i https://pypi.tuna.tsinghua.edu.cn/simple 进行安装
2.由于openai-whisper使用深度学习方法,如电脑不使用GPU运行则运行速度较慢。

云服务器的尝试






总结

本次项目也算是现学现卖,同时在沟通交流中也存在有一定问题。组员间对多模态的理解、组员间能力、时间空余的参差不齐也导致了一定的配合问题。常见的重复工作、多次代码重构也有出现。同时存在组员在讨论时不提意见不出力,但在推进项目时推卸责任、撂挑子等情况。作为组长,自身在技术、组织能力不足的问题也是及其重要的原因。组队时应当注意组长在技术能力上的要求,组长能力不足容易导致难以控制团队、难以确定前进方向等问题。最后,感谢各组员的付出。对冯展同学、吴钦鹏同学在技术上的支持与帮助表示感谢。