多语言 Google Meet 摘要器和 Python 项目
简介
多语言 Google Meet 摘要器是一个工具/Chrome 扩展程序,可以为多种语言的 Google Meet 会话创建转录。在 COVID 期间,人们需要一个能够有效总结会议、课堂讲座和视频会议的工具。因此,这样的工具在这方面非常有用。
在本文中,让我们概述一下项目结构,并借助代码探讨一些实现方面。
这个项目是关于什么的?
这是一个简单的 Chrome 扩展程序,在 Google Meet 会话中启用时,可以生成会议转录并以多种语言总结对话。
我们将使用什么工具?
前端 - Reactjs,HTML,CSS,Bootstrap
后端 - Django REST 服务
Python (机器学习) - Pytorch,NLTK 库
数据库 - SQLite
项目流程图和步骤
用户启动会议并同时启用扩展程序。
然后,扩展程序使用 HTML 音频提取会议音频并进行转录。
然后,它将数据发送到后端,后端使用机器学习算法对文本进行摘要。
机器学习翻译模型将摘要后的文本翻译成目标语言。
最后,可以从扩展程序下载转录。
项目实施
UI(前端)和后端
使用 Django Rest API 创建身份验证服务,允许用户登录并保存转录。
在 Django 中创建模型并使用 JWT 令牌。用于生成令牌和验证用户的 REST API 视图。
接下来,使用 SQL 语言在 SQLite 中创建具有关系的数据库。
创建转录模式,例如 id、名称、日期、主机、标题、持续时间和文本。
接下来,创建一个 REST API,Chrome 扩展程序将使用它来发送来自前端的数据。
在后端,还使用 Python、NLTK 和 NLP 创建用于文本摘要和翻译的 API。
代码实现
示例
from googletrans import Translator
LANG_CODES = {
'ENGLISH': 'en',
'HINDI': 'hi',
'MARATHI': 'mr',
'ARABIC': 'ar',
'BENGALI': 'bn',
'CHINESE': 'zh-CN',
'FRENCH': 'fr',
'GUJARATI': 'gu',
'JAPANESE': 'ja',
'KANNADA': 'kn',
'MALAYALAM': 'ml',
'NEPALI': 'ne',
'ORIYA': 'or',
'PORTUGUESE': 'pt',
'PUNJABI': 'pa',
'RUSSIAN': 'ru',
'SPANISH': 'es',
'TAMIL': 'ta',
'TELUGU': 'te',
'URDU': 'ur'
}
def langauge_translate(input_data, input_lang, output_lang):
input_lang, output_lang = input_lang.upper(), output_lang.upper()
tr = Translator()
text_translate = tr.translate(
input_data, src=LANG_CODES[input_lang], dest=LANG_CODES[output_lang])
output_text = text_rtanslate.text
return(output_text)
机器学习算法
摘要
数据清洗 ---------> 分词 ------------> 词汇生成/排序/频率 -------------->句子选择 --------------> 摘要
翻译
初始化----->嵌入生成 ------>编码 ------------>解码 ------------> 摘要
用于摘要和翻译的 Python 代码
示例
from nltk.tokenize import sent_tokenize,word_tokenize
import nltk
from nltk.corpus import stopwords
nltk.download('stopwords')
nltk.download('punkt')
def text_clean(txt):
data = txt.split('**')
data.pop(0)
cleaned_data = ""
i = 0
for t in data:
if i % 2 != 0:
cleaned_data += str(t)
i += 1
return cleaned_data
stopwords = set(stopwords.words("english"))
def word_token(txt):
w = word_tokenize(txt)
return w
def frequency_table(txt):
frequencyT = dict()
words = word_token(txt)
for w in words:
w = w.lower()
if w in stopwords:
continue
if w in frequencyT:
frequencyT[w] += 1
else:
frequencyT[w] = 1
return frequencyT
def Senttokenizer(txt):
sents = sent_tokenize(txt)
return sents
def sents_rank_table(txt):
sent_value = dict()
freq_Table = frequency_table(txt)
sents = Senttokenizer(txt)
for s in sents:
for word, freq in freq_Table.items():
if word in s.lower():
if s in sent_value:
sent_value[s] += freq
else:
sent_value[s] = freq
return sent_value
def summary(txt):
sum = 0
sent_value = sents_rank_table(txt)
for sentence in sent_value:
sum += sent_value[sentence]
average = int(sum / len(sent_value))
summary = ""
sents = Senttokenizer(txt)
for s in sents:
if (s in sent_value) and (sent_value[s] > (1.2 * average)):
summ += " " + s
return summ
def main(input_text):
# getting text cleaned
if("**" not in input_text):
txt = input_text
else:
cleanedtext = text_clean(input_text)
txt = cleanedtext
summarized_text = summary(txt)
print("Summary: ", summarized_text)
return summarized_text
textdata = "网站排名/位置和 SEO 在当今的搜索趋势以及获得的结果的相关性中起着至关重要的作用。搜索引擎\
排名被许多大型科技公司(如今天的谷歌)广泛采用,并使用最先进的算法。\
在本文中,我们将探讨机器学习如何影响网站排名,以及如何利用网站数据来为最先进的算法提供动力。\
机器学习如何在排名中发挥作用?\
一段时间以来,SEO 专家一直避免使用深度学习和神经\
网络来开发排名算法,但今天,随着机器学习和深度学习算法实现的多功能性,这种\
情况已经完全改变了。\
今天,谷歌、微软和雅虎等大型组织正在积极利用这些算法。"
main(textdata)
输出
Summary: Search Engine Ranking is widely adopted by many big tech organizations like google today with state-of-the-art algorithms.In this article, we are going to explore how Machine Learning can impact the ranking of sites and how it can utilize site data to fuel state-of-the-art algorithms.How can Machine Learning be useful in Ranking?For some time, back specialists in SEO have been keeping themselves away using Deep Learning and neuralnetworks for developing ranking algorithms, but today with the versatility of implementation of machine learning and deep learning algorithms this scenario has completely changed.Today big organizations like Google, Microsoft, and Yahoo are actively exploiting these algorithms.
结论
Google Meet 摘要器是一个简单的项目,可以使用与前端、后端和机器学习相关的技术堆栈来总结多种语言的 Google Meet。
数据结构
网络
关系数据库管理系统 (RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C 语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP