CN113438542B - 字幕实时翻译方法、系统、电子设备及存储介质 - Google Patents
字幕实时翻译方法、系统、电子设备及存储介质 Download PDFInfo
- Publication number
- CN113438542B CN113438542B CN202110595020.8A CN202110595020A CN113438542B CN 113438542 B CN113438542 B CN 113438542B CN 202110595020 A CN202110595020 A CN 202110595020A CN 113438542 B CN113438542 B CN 113438542B
- Authority
- CN
- China
- Prior art keywords
- translation
- caption
- data
- subtitle
- original
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/435—Processing of additional data, e.g. decrypting of additional data, reconstructing software from modules extracted from the transport stream
- H04N21/4355—Processing of additional data, e.g. decrypting of additional data, reconstructing software from modules extracted from the transport stream involving reformatting operations of additional data, e.g. HTML pages on a television screen
- H04N21/4358—Processing of additional data, e.g. decrypting of additional data, reconstructing software from modules extracted from the transport stream involving reformatting operations of additional data, e.g. HTML pages on a television screen for generating different versions, e.g. for different peripheral devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/40—Processing or translation of natural language
- G06F40/42—Data-driven translation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/40—Processing or translation of natural language
- G06F40/58—Use of machine translation, e.g. for multi-lingual retrieval, for server-side translation for client devices or for real-time translation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/47—End-user applications
- H04N21/478—Supplemental services, e.g. displaying phone caller identification, shopping application
- H04N21/4782—Web browsing, e.g. WebTV
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/47—End-user applications
- H04N21/488—Data services, e.g. news ticker
- H04N21/4884—Data services, e.g. news ticker for displaying subtitles
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computational Linguistics (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Artificial Intelligence (AREA)
- General Health & Medical Sciences (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
本发明公开了一种字幕实时翻译方法、系统、电子设备及存储介质,该方法包括:对获取到的页面源码数据进行数据解析,得到字幕的位置信息;按照预设提取时间间隔实时提取位置信息所对应的标签的原始字幕数据;判断当前时刻提取到的原始字幕数据是否与上一时刻提取到的原始字幕数据相同;若当前时刻提取到的原始字幕数据与上一时刻提取到的原始字幕数据不相同,则将当前时刻提取到的原始字幕数据发送至翻译服务,以便翻译服务对接收到的原始字幕数据进行字幕翻译,待字幕翻译完成后发送翻译字幕数据;接收翻译服务发送的翻译字幕数据;对翻译字幕数据增加标签属性组成DOM树;将DOM树插入到html页面中进行翻译字幕数据的实时显示;实现了字幕的实时翻译。
Description
技术领域
本发明涉及数据处理领域,具体涉及到一种字幕实时翻译方法、系统、电子设备及存储介质。
背景技术
随着时代的发展,网络技术越来越进步,通过视频浏览器观看国内外视频成为了人们日常生活中的一部分。当观看非母语语言的视频时,语言问题是影响视频观看的最大问题之一,很多人由于语言障碍不得不放弃了非母语视频的观看。基于此,字幕翻译成为亟待解决的一个技术问题。
发明内容
有鉴于此,本发明实施例提供了一种字幕实时翻译方法、系统、电子设备及存储介质,以实现字幕的实时翻译。
为此,本发明实施例中提供了如下技术方案:
根据第一方面,本发明实施例中提供了一种字幕实时翻译方法,包括:获取html页面的页面源码数据;对页面源码数据进行数据解析,得到html页面中字幕的位置信息;按照预设提取时间间隔实时提取位置信息所对应的标签的原始字幕数据;判断当前时刻提取到的原始字幕数据是否与上一时刻提取到的原始字幕数据相同;若当前时刻提取到的原始字幕数据与上一时刻提取到的原始字幕数据不相同,则将当前时刻提取到的原始字幕数据发送至翻译服务,以便翻译服务对接收到的原始字幕数据进行字幕翻译,待字幕翻译完成后发送翻译字幕数据;接收翻译服务发送的翻译字幕数据;对翻译字幕数据增加标签属性,组成DOM树;将DOM树插入到html页面中进行翻译字幕数据的实时显示。
可选地,翻译服务对接收到的原始字幕数据进行字幕翻译,待字幕翻译完成后发送翻译字幕数据的步骤中,包括:获取语种翻译类型,语种翻译类型包括html页面的原始语种类型和html页面翻译后所对应的目标语种类型;根据语种翻译类型在语种翻译模型库中匹配对应的字幕翻译模型;利用flaskweb框架,加载字幕翻译模型并搭建成翻译服务;接收原始字幕数据;将原始字幕数据输入至字幕翻译模型中进行字幕翻译,得到翻译字幕数据;发送翻译字幕数据。
可选地,发送翻译字幕数据的步骤中,包括:将原始字幕数据与翻译字幕数据进行逐句对应,得到字幕翻译对照数据;发送字幕翻译对照数据。
可选地,接收翻译服务发送的翻译字幕数据的步骤之前,还包括:关闭原始字幕数据的显示。
可选地,将DOM树插入到html页面中进行翻译字幕数据的实时显示的步骤中,包括:构建预设个数的翻译字幕存储节点;接收到新翻译字幕数据后,将后一个翻译字幕存储节点中的翻译字幕数据传递至前一个翻译字幕存储节点中,将接收到的新翻译字幕数据传递至最后一个翻译字幕存储节点中。
可选地,将接收到的新翻译字幕数据传递至最后一个翻译字幕存储节点中的步骤之后,还包括:获取新翻译字幕数据后的空闲时间间隔;判断所述空闲时间间隔是否大于预设空闲时间阈值;若所述空闲时间间隔大于所述预设空闲时间阈值,则关闭翻译字幕数据;若所述空闲时间间隔小于或者等于所述预设空闲时间阈值,则继续显示翻译字幕数据。
可选地,对页面源码数据进行数据解析,得到html页面中字幕的位置信息的步骤中,包括:根据页面源码数据确定html页面字幕标签的标签属性和字幕标签所对应的父节点;根据标签属性遍历父节点下的所有子节点,得到每一个子节点所对应的字幕详细位置;将每一个子节点所对应的字幕详细位置组成html页面中字幕的位置信息。
根据第二方面,本发明实施例中提供了一种字幕实时翻译系统,包括:第一获取模块,用于获取html页面的页面源码数据;第一处理模块,用于对页面源码数据进行数据解析,得到html页面中字幕的位置信息;第二处理模块,用于按照预设提取时间间隔实时提取位置信息所对应的标签的原始字幕数据;第一判断模块,用于判断当前时刻提取到的原始字幕数据是否与上一时刻提取到的原始字幕数据相同;第三处理模块,用于若当前时刻提取到的原始字幕数据与上一时刻提取到的原始字幕数据不相同,则将当前时刻提取到的原始字幕数据发送至翻译服务,以便翻译服务对接收到的原始字幕数据进行字幕翻译,待字幕翻译完成后发送翻译字幕数据;第四处理模块,用于接收翻译服务发送的翻译字幕数据;第五处理模块,用于对翻译字幕数据增加标签属性,组成DOM树;第六处理模块,用于将DOM树插入到html页面中进行翻译字幕数据的实时显示。
可选地,所述第三处理模块包括:第一获取单元,用于获取语种翻译类型,语种翻译类型包括html页面的原始语种类型和html页面翻译后所对应的目标语种类型;第一处理单元,用于根据语种翻译类型在语种翻译模型库中匹配对应的字幕翻译模型;第二处理单元,用于利用flaskweb框架,加载字幕翻译模型并搭建成翻译服务;第三处理单元,用于接收原始字幕数据;第四处理单元,用于将原始字幕数据输入至字幕翻译模型中进行字幕翻译,得到翻译字幕数据;第五处理单元,用于发送翻译字幕数据。
可选地,所述第五处理单元包括:第一处理子单元,用于将原始字幕数据与翻译字幕数据进行逐句对应,得到字幕翻译对照数据;第二处理子单元,发送字幕翻译对照数据。
可选地,还包括:第七处理模块,用于关闭原始字幕数据的显示。
可选地,第六处理模块包括:第六处理单元,用于构建预设个数的翻译字幕存储节点;第七处理单元,用于接收到新翻译字幕数据后,将后一个翻译字幕存储节点中的翻译字幕数据传递至前一个翻译字幕存储节点中,将接收到的新翻译字幕数据传递至最后一个翻译字幕存储节点中。
可选地,还包括:第八处理单元,用于获取新翻译字幕数据后的空闲时间间隔;判断单元,用于判断所述空闲时间间隔是否大于预设空闲时间阈值;第九处理单元,用于若所述空闲时间间隔大于所述预设空闲时间阈值,则关闭翻译字幕数据;第十处理单元,用于若所述空闲时间间隔小于或者等于所述预设空闲时间阈值,则继续显示翻译字幕数据。
可选地,第一处理模块包括:第十一处理单元,用于根据页面源码数据确定html页面字幕标签的标签属性和字幕标签所对应的父节点;第十二处理单元,用于根据标签属性遍历父节点下的所有子节点,得到每一个子节点所对应的字幕详细位置;第十三处理单元,用于将每一个子节点所对应的字幕详细位置组成html页面中字幕的位置信息。
根据第三方面,本发明实施例中提供了一种电子设备,包括:至少一个处理器;以及与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的计算机程序,计算机程序被至少一个处理器执行,以使至少一个处理器执行上述第一方面任意一项描述的字幕实时翻译方法。
根据第四方面,本发明实施例中提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机指令,计算机指令用于使计算机执行上述第一方面任意一项描述的字幕实时翻译方法。
本发明实施例技术方案,具有如下优点:
本发明实施例提供了一种字幕实时翻译方法、系统、电子设备及存储介质,其中,该方法包括:获取html页面的页面源码数据;对页面源码数据进行数据解析,得到html页面中字幕的位置信息;按照预设提取时间间隔实时提取位置信息所对应的标签的原始字幕数据;判断当前时刻提取到的原始字幕数据是否与上一时刻提取到的原始字幕数据相同;若当前时刻提取到的原始字幕数据与上一时刻提取到的原始字幕数据不相同,则将当前时刻提取到的原始字幕数据发送至翻译服务,以便翻译服务对接收到的原始字幕数据进行字幕翻译,待字幕翻译完成后发送翻译字幕数据;接收翻译服务发送的翻译字幕数据;对翻译字幕数据增加标签属性,组成DOM树;将DOM树插入到html页面中进行翻译字幕数据的实时显示。上述步骤,对获取到的html页面的页面源码数据进行数据解析确定字幕的位置信息,按照预设提取时间间隔提取原始字幕数据;之后,判断当前时刻提取到的原始字幕和上一时刻提取到的原始字幕数据是否相同;若相同,则不执行任何操作;若不相同,则将当前时刻的原始字幕数据发送至翻译服务进行字幕翻译;然后,接收翻译服务发送的翻译字幕数据,将翻译字幕数据添加标签属性组成DOM树;最后,将DOM树插入到html页面中进行翻译字幕数据的实时显示。该方法实现原始字幕的捕获和翻译字幕显示,将字幕翻译分摊给翻译服务,减轻了浏览器的压力,减少了浏览器内存占用、cpu占用等,降低了浏览器崩溃的风险。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例的字幕实时翻译方法的一个具体示例的流程图;
图2为本发明实施例的字幕实时翻译方法的另一个具体示例的流程图;
图3为本发明实施例的字幕实时翻译系统的一个具体示例的框图;
图4为本发明实施例的电子设备的示意图。
具体实施方式
下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供了一种字幕实时翻译方法,如图1所示,该方法包括步骤S1-S8。
步骤S1:获取html页面的页面源码数据。
作为示例性的实施例,在视频网站浏览器中插入对应的浏览器插件实现对该视频网站中播放的视频字幕进行字幕捕获。具体的,例如,需要字幕翻译的视频使用的是chrome浏览器,则所插入的浏览器插件为chrome插件(后缀为crx);当然,在其它实施例中,根据浏览器不同选择对应的浏览器插件即可。
本实施例中,通过在浏览器插件中注入js脚本获取html页面上的页面源码数据。具体的,以youtube tv为例,在视频播放页面嵌入js脚本,读取当前html页面的页面源码数据。
步骤S2:对页面源码数据进行数据解析,得到html页面中字幕的位置信息。
作为示例性的实施例,成功获取到页面源码数据后,利用xpath对页面源码数据进行解析,经过解析,定义到字幕位置所对应的标签,根据标签得到字幕的位置信息。具体的,位置信息是指该字幕所在的标签位置,即HTML DOM的绝对位置。
例如:
“/html/body[@class='lites']/div[@id='wrapper']/div[@id='wrapper_wrapper']/div[@id='container']/div[@id='content_left']”)。
步骤S3:按照预设提取时间间隔实时提取位置信息所对应的标签的原始字幕数据。
作为示例性的实施例,预设提取时间间隔的设置是基于经验值设置的,其较优的范围为1~2秒;预设提取时间间隔的数值越大,对所需数据处理配置要求较低,相应的数据提取准确度较低;预设提取时间间隔的数值越小,对所需数据处理配置要求较高,但数据提取准确度较高。本实施例中,预设提取时间间隔设置为1秒,当然,在其它实施例中,预设提取时间间隔可根据实际需要进行合理设置。
步骤S4:判断当前时刻提取到的原始字幕数据是否与上一时刻提取到的原始字幕数据相同。
作为示例性的实施例,每次获取新的字幕数据都会和上一条字幕数据做字符串级的相等判断,用来比较数据是否一样。通过对当前时刻提取到的原始字幕数据和上一时刻提取到的原始字幕数据进行数据比较,以确定两者是否相同。若两者相同,则说明当前时刻的原始字幕数据与上一时刻的原始字幕数据相同,也就是在相邻的预设提取时间间隔内字幕数据没有变化,由于已经对上一时刻的原始字幕数据进行过字幕翻译,故无需对当前时刻的原始字幕数据进行再次翻译,无需作任何操作,这样能够降低数据传输成本和数据翻译成本。若两者不相同,则说明当前时刻获取到的原始字幕数据是新的字幕数据,故需要将新的字幕数据进行字幕翻译,执行步骤S5。
步骤S5:若当前时刻提取到的原始字幕数据与上一时刻提取到的原始字幕数据不相同,则将当前时刻提取到的原始字幕数据发送至翻译服务,以便翻译服务对接收到的原始字幕数据进行字幕翻译,待字幕翻译完成后发送翻译字幕数据。
作为示例性的实施例,当前时刻提取到的原始字幕数据与上一时刻提取到的原始字幕数据不相同时,说明当前时刻提取的原始字幕数据是新的字幕数据,将当前时刻提取到的原始字幕数据发送至翻译服务进行字幕翻译。翻译服务接收到当前时刻的原始字幕数据,然后根据翻译需求信息进行字幕翻译,翻译需求信息中包括对字幕翻译的原始语种和目标语种的相关需求,根据翻译需求信息便可知将原始字幕翻译成何种语种的字幕;待字幕翻译完成后,发送翻译好的翻译字幕数据。
本实施例中,翻译服务利用flaskweb框架,加载训练好的字幕翻译模型并搭成服务。
步骤S6:接收翻译服务发送的翻译字幕数据。
作为示例性的实施例,翻译服务接收包含原始字幕数据的待翻译内容request,通过翻译模型进行翻译后,返回带有翻译结果的response,故从翻译服务返回的response中便可获取到当前字幕的翻译字幕数据。
步骤S7:对翻译字幕数据增加标签属性,组成DOM树。
作为示例性的实施例,获取到翻译字幕数据后,将翻译字幕数据包装成DOM树。具体的包装过程为利用js的setAttribute方法进行构建DOM树以及包装,例如node.setAttribute("class","captions");即为在node节点下生成一个class属性为captions的子节点)。通过上述方法为翻译字幕数据的标签增加“style”,“class”等属性,以便后续进行字幕显示。
步骤S8:将DOM树插入到html页面中进行翻译字幕数据的实时显示。
作为示例性的实施例,利用js将DOM树插入到html页面中,实现翻译字幕数据的显示。
上述步骤,对获取到的html页面的页面源码数据进行数据解析确定字幕的位置信息,按照预设提取时间间隔提取原始字幕数据;之后,判断当前时刻提取到的原始字幕和上一时刻提取到的原始字幕数据是否相同;若相同,则不执行任何操作;若不相同,则将当前时刻的原始字幕数据发送至翻译服务进行字幕翻译;然后,接收翻译服务发送的翻译字幕数据,将翻译字幕数据添加标签属性组成DOM树;最后,将DOM树插入到html页面中进行翻译字幕数据的实时显示。该方法实现原始字幕的捕获和翻译字幕显示,将字幕翻译分摊给翻译服务,减轻了浏览器的压力,减少了浏览器内存占用、cpu占用等,降低了浏览器崩溃的风险。
作为示例性的实施例,步骤S5翻译服务对接收到的原始字幕数据进行字幕翻译,待字幕翻译完成后发送翻译字幕数据的步骤中,包括步骤S501-S506。
步骤S501:获取语种翻译类型,语种翻译类型包括html页面的原始语种类型和html页面翻译后所对应的目标语种类型。
本实施例中,根据翻译需求信息得到语种翻译类型,翻译需求信息中包括对字幕翻译语种的需求,也就是在翻译需求信息中确定字幕的原始语种类型和翻译后的目标语种类型。例如,英中翻译指的是将英文翻译成中文,也就是字幕的原始语种类型为英文,翻译后的语种类型为中文;中英翻译指的是将中文翻译成英文,也就是字幕的原始语种类型为中文,翻译后的语种类型为英文;本实施例对此仅作示意性说明,不以此为限,在实际应用中根据翻译需求合理确定原始语种类型和目标语种类型。根据翻译需求信息便可确定语种翻译类型,例如,翻译需求信息中是英中翻译,那么语种翻译类型为英文语种翻译成中文语种。
步骤S502:根据语种翻译类型在语种翻译模型库中匹配对应的字幕翻译模型。
本实施例中,语种包括多种不同类型,字幕的原始语种类型是多样化的,字幕翻译在实际应用中也可以翻译成多种不同语种,故将何种原始语种类型翻译成何种目标语种类型的组合方式也是多种多样的。语种翻译模型库是一个翻译模型的集合,包括各种语种的字幕翻译模型,例如中英字幕翻译模型、英中字幕翻译模型、俄中字幕翻译模型等多种不同的字幕翻译模型。不同的字幕翻译模型在训练过程中采用对应语种的训练集,以提高字幕翻译模型的翻译准确度。
根据语种翻译类型在语种翻译模型库中进行查找,匹配到对应的字幕翻译模型。例如,语种翻译类型为英中翻译类型,则在语种翻译模型库中找到英中字幕翻译模型,采用英中字幕翻译模型将英文字幕翻译成中文字幕。
步骤S503:利用flaskweb框架,加载字幕翻译模型并搭建成翻译服务。
本实施例中,利用flaskweb框架,加载训练好的字幕翻译模型,并将该字幕翻译模型搭成翻译服务,实现接收带有待翻译内容request,通过字幕翻译模型进行翻译,返回带有翻译结果的response。具体的,在初始化时加载训练好的字幕翻译模型,后续字幕翻译过程中无需再加载,避免重复加载浪费时间。
步骤S504:接收原始字幕数据。
本实施例中,中转服务是本地中转服务,本地中转服务作用是用来使浏览器以及翻译服务端连接起来的中转服务,一个类似于中间件的模块,该中转服务利用flask搭建。翻译服务通过中转服务接收原始字幕数据,具体的,中转服务为浏览器本机开放一个端口,接收提取到的原始字幕数据,将待翻译的原始字幕数据包装成请求,发送给翻译服务。
对比直接用浏览器插件来实现字幕翻译,该中转服务有以下优点:拆分浏览器插件功能,将多余功能分摊给中转服务,让插件只实现捕获原始字幕以及翻译字幕内容的显示,这样做减轻的浏览器压力,减少了浏览器内存占用,cpu占用等,进而降低了浏览器崩溃的风险;中转服务利用python,有更强的扩展性,可以轻松地对其中的内容进行各种后续操作,如清洗,入库,去重等;flask支持热重载,修改脚本无需重启服务,可以更方便快捷的进行增加需求,修改脚本,调试内容等操作。
步骤S505:将原始字幕数据输入至字幕翻译模型中进行字幕翻译,得到翻译字幕数据。
本实施例中,翻译服务接收中转服务发送的原始字幕数据之后,将原始字幕数据输入至翻译服务中的字幕翻译模型,字幕翻译模型将原始字幕数据翻译成目标语种类型所对应的翻译字幕数据。
步骤S506:发送翻译字幕数据。
本实施例中,通过中转服务发送翻译字幕数据,具体的,翻译服务将翻译好的翻译字幕数据包装好之后,作为response返回至中转服务,中转服务将接收到的翻译字幕数据发送至浏览器。
上述步骤,根据语种翻译类型在语种翻译模型库中匹配到对应的字幕翻译模型,将字幕翻译模型搭建成翻译服务,将原始字幕数据发送至翻译服务中的字幕翻译模型中进行字幕的翻译并发送翻译好的翻译字幕,实现了字幕的翻译。
作为示例性的实施例,步骤S506发送翻译字幕数据的步骤中,包括步骤S5061-S5062。
步骤S5061:将原始字幕数据与翻译字幕数据进行逐句对应,得到字幕翻译对照数据。
本实施例中,由于字幕是一句一句的,故将翻译好的翻译字幕数据与原始字幕数据按照句子进行逐句对应,得到字幕翻译对照数据。
步骤S5062:发送字幕翻译对照数据。
具体地,将字幕翻译对照数据发送,以便后续显示双字幕。
上述步骤,将原始字幕数据与翻译字幕数据对应好,并将对应好的字幕翻译对照数据发送,以便后续同时显示原始字幕数据和翻译字幕数据。
作为示例性的实施例,步骤S6接收翻译服务发送的翻译字幕数据的步骤之前,还包括步骤S7。
步骤S7:关闭原始字幕数据的显示。
具体的,通过将原始字幕数据所对应的字幕标签的z轴层级调低来实现原始字幕数据取消显示。
作为示例性的实施例,步骤S8将DOM树插入到html页面中进行翻译字幕数据的实时显示的步骤中,包括步骤S801-S802。
步骤S801:构建预设个数的翻译字幕存储节点。
本实施例中,预设个数设置为6个,当然,在其它实施例中,预设个数的具体数值还可以设置为其它数值,例如5个或者7个等,根据需要合理设置即可。每一个存储节点对应一句字幕,本实施例中包括6个存储节点,也就是能够同时显示6句翻译字幕。
步骤S802:接收到新翻译字幕数据后,将后一个翻译字幕存储节点中的翻译字幕数据传递至前一个翻译字幕存储节点中,将接收到的新翻译字幕数据传递至最后一个翻译字幕存储节点中。
本实施例中,由于字幕是一句一句的,每一个翻译字幕存储节点中存储一句原始字幕数据和该句所对应的翻译字幕数据,故在插入时每翻译一句,翻译字幕自动向上滚动两行(一行是原始字幕数据,另一行是翻译字幕数据)。
具体实现方法如下:
innernode.childNodes[1].innerHTML=innernode.childNodes[2].innerHTML;
innernode.childNodes[2].innerHTML=innernode.childNodes[3].innerHTML;
innernode.childNodes[3].innerHTML=innernode.childNodes[4].innerHTML;
innernode.childNodes[4].innerHTML=innernode.childNodes[5].innerHTML;
innernode.childNodes[5].innerHTML=innernode.childNodes[6].innerHTML;
innernode.childNodes[6].innerHTML=new_caption
本实施例中构建6个存储字幕的节点,每获得一条新的翻译,历史字幕作为结果传递到上一个节点中,而最后一个节点始终接收新的翻译字幕。
通过上述步骤实现了一边翻译一边滚动显示字幕。
作为示例性的实施例,步骤S802将接收到的新翻译字幕数据传递至最后一个翻译字幕存储节点中的步骤之后,还包括步骤S803-S806。
步骤S803:获取新翻译字幕数据后的空闲时间间隔。
本实施例中,由于视频播放过程中,字幕通常不是一直显示的,例如当视频中没有声音时,则页面上没有字幕,故获取新翻译字幕数据后的空闲时间间隔,该空闲时间间隔用于表征无字幕显示的时间间隔。
步骤S804:判断空闲时间间隔是否大于预设空闲时间阈值。若空闲时间间隔大于预设空闲时间阈值,则执行步骤S805;若空闲时间间隔不大于预设空闲时间阈值,则执行步骤S806。
本实施例中,预设空闲时间阈值设置为10~15秒;当然,在其它实施例中,预设空闲时间阈值还可以设置为其它数值,如5秒或者20秒等,本实施例对此仅作示意性说明,不以此为限,在实际应用中根据需要合理设置即可。
步骤S805:若空闲时间间隔大于预设空闲时间阈值,则关闭翻译字幕数据。
本实施例中,当空闲时间间隔大于预设空闲时间阈值时,说明无字幕显示的时间间隔较长,较长时间内不会接收到新翻译字幕,也就是距离接收新翻译字幕还需要较长的时间,此种情况,关闭翻译字幕数据,待接收到新翻译字幕后再重新显示。
步骤S806:若空闲时间间隔小于或者等于预设空闲时间阈值,则继续显示翻译字幕数据。
本实施例中,当空闲时间间隔小于或者等于所述预设空闲时间阈值时,说明较短时间内便会接收到新翻译字幕,无需关闭字幕显示,继续保持翻译字幕数据的显示。
上述步骤,通过比较空闲时间间隔和预设空闲时间阈值的大小,确定接收新翻译字幕的时间间隔长短;在空闲时间间隔大于预设空闲时间阈值时,接收新翻译字幕的时间间隔较长,关闭翻译字幕数据的显示;在空闲时间间隔不大于预设空闲时间阈值时,接收新翻译字幕的时间间隔较短,无需关闭字幕显示,继续保持翻译字幕数据的显示;实现了翻译字幕数据的实时显示,提高了字幕显示效果。
作为示例性的实施例,步骤S2对页面源码数据进行数据解析,得到html页面中字幕的位置信息的步骤中,包括步骤S201-S203。
步骤S201:根据页面源码数据确定html页面字幕标签的标签属性和字幕标签所对应的父节点。
本实施例中,不同网站的字幕标签属性不同,通过对要翻译网站的html网页进行分析,先确定该网站html网页中的字幕标签和字幕标签的属性,然后根据字幕标签找到最外层的字幕标签,确定最外层字幕标签所对应的父节点。
步骤S202:根据标签属性遍历父节点下的所有子节点,得到每一个子节点所对应的字幕详细位置。
本实施例中,对父节点下的所有子节点进行遍历,找到每一个子节点中与字幕标签属性相同的子节点标签,也就是根据字幕标签属性逐级定位子节点标签,从而找到每一个子节点中详细字幕所在位置。
步骤S203:将每一个子节点所对应的字幕详细位置组成html页面中字幕的位置信息。
本实施例中,父节点下所有子节点中字幕详细位置即构成html页面字幕的位置信息。
上述步骤通过遍历父节点下的所有子节点实现页面字幕位置信息的定位,使用遍历的方法查询,而不是硬编码构建路径来查询,优点是定位简单,不易出错。并且如果网页改版,又新加了一个带有新字幕的节点,遍历方法可以不用修改代码就能自动识别出来。
下面以一个具体示例进行详细说明,如图2所示。
字幕展示系统包括浏览器插件模块和本地中转服务模块。其中,浏览器插件模块包括字幕捕获模块和翻译字幕显示模块。
字幕捕获模块是通过浏览器插件来实现的,在本实施例中使用的是chrome浏览器,故插件为chrome插件(后缀为crx)。通过嵌入js脚本来实现实时获取字幕内容的功能。以youtube tv为例,在视频播放页面嵌入js脚本,读取当前html页面的数据。成功读取数据后,利用xpath针对数据进行解析,经过解析,定义到字幕位置的标签。读取html内容,拿到字幕标签下的文本(text)数据,该数据即为字幕内容,该字幕为英文原版内容,不带有任何翻译。拿到字幕文本数据后发送给翻译服务,得到翻译后的结果。
详细步骤:先通过分析,定位原html字幕位置,通过查看页面源码找到tag“caption-visual-line”标签,该标签为字幕所在页面标签。根据class或其他属性,逐级定位子节点标签,子节点为span标签,并且class为”ytp-caption-segment”;通过以上2个特征可以查询到子节点的标签,从而找到详细字幕所在位置。提取子节点内text数据,即字幕数据,并发送给中转服务,得到翻译结果;遍历子节点,找到字幕数据位置,发送请求模块,通过包装一个httpRequest对象来传递网络请求。
翻译字幕显示模块通过浏览器插件来实现,在实施例中使用的是chrome浏览器,故插件为chrome插件(后缀为crx)。在从本地中转服务获取当前字幕的翻译后,将获取到的翻译内容包装成html DOM树。将生成的结果利用js插入到原网页中,实现随着电视直播内容实时显示当前内容的翻译。
详细步骤:首先关闭原来的英文字幕显示;具体通过将原字幕标签的z轴层级调低来实现原英文字幕取消显示。获取到翻译内容后,将翻译字幕包装成DOM树;具体为翻译字幕的标签增加“style”,“class”等属性。将翻译字幕的标签插入到原页面中;由于字幕是一句一句的,所以我们在插入时每翻译一句,翻译字幕自动向上滚动两行,实现边翻译边获得滚动字幕的效果。字幕滚动具体通过构建6个存储字幕的节点,每获得一条新的翻译,历史字幕作为结果传递到上一个节点中,而最后一个节点始终接收新的翻译字幕,从而实现滚动字幕的效果。
本地中转服务模块是用来使浏览器以及翻译服务端连接起来的中转服务,一个类似于中间件的模块,该中转服务利用flask搭建。
详细步骤:利用flask框架,搭建本地中转服务;具体在本机开放一个端口,接收提取到的字幕。将待翻译数据包装成请求,发送给翻译服务;具体利用requests包,构建请求对象。数据存储模块,将返回的翻译与原文合并,作为整体存入数据库中,格式化后方便查看搜索等。
翻译服务包括fairseq框架、语料收集、subword技术和搭建翻译服务。
本实施例中所使用的深度学习框架为Fairseq。Fairseq是一种由Facebook AIResearch发开,利用PyTorch编写的序列建模工具套件,该系统用CNN来做机器翻译,达到顶尖的准确率,速度则是RNN的9倍;可以通过它来训练自定义模型以进行翻译,摘要,语言建模和其他文本生成任务。该框架主要由以下几个模块组成。
1.包含位置信息的embedding(Position Embeddings)
输入端除了正常的每个单词的词向量以外,本模型将位置信息也作为特征加入到输入中。最后得到的输入向量为词向量加上位置向量。
针对每个词的输入:
词向量:w=(w1,w2,w3,…,wn)
其中,w为一个句子总的词向量,n为该句子中的词的个数,w1为这个句子中第一个词的词向量,w2为这句子中第二个词的词向量,w3为这句子中第三个词的词向量,wn为这句子中第n个词的词向量;
位置向量:p=(p1,p2,p3,…,pn)
其中,p是这句子总的位置向量,n为该句子中的词的个数,p1为这句子中第一个词的位置向量,p2为这句子中第二个词的位置向量,p3为这句子中第三个词的位置向量,pn为这句子中第n个词的位置向量;
将上述两者相加,从而得到最终输入e。
完整的单词嵌入向量:e=(w1+p1,w2+p2,w3+p3,…,wn+pn)
其中,e是这句子最终的嵌入向量,通过上面两个公式相加得到。
2.卷积块结构(Convolutional Block Structure)
encoder和decoder都是由l层卷积层构成:zl=(zl1,…,zlm)(其中,zl是encoder的卷积层,zl1,zl2等是组成这个卷积层的每个卷积块)和hl=(hl1,…,hln)(其中,hl是decoder的卷积层,hl1,hl2等是组成这个卷积层的每个卷积块),卷积块的整体结构为:每一个块包含了一个一维卷积,一维卷积后紧跟一个门控线性单元GLU,然后再进行残差连接。
门控线性单元第一步先得到包含位置信息的单词向量组成的句子向量E(与上文的e向量完全一样)。
第二步是对上述句子向量E进行一维卷积操作。这里需要注意的是,由于GLU门控线性单元的特点,这里是使用了不同的参数分别对句子向量E进行了卷积操作得到A和B向量,再对上述得到的Y向量进行GLU门控线性单元激活。
残差连接,为了确保深度的卷积网络,该模型在门控线性单元GLU激活后进行了残差连接。
这是传统残差模型的一个变形。为hl卷积块的第i个状态,该公式表示了将k个第l-1块中的所有状态(等)作为输入,经过卷积和门控线性单元GLU激活后再和第l-1模块的第i个状态相加便得到了第l个模块中的第i个状态。
输出:decoder的最后一层卷积层的最后一个单元输出经过softmax得到下一个目标词的概率。
p=softmax(WhL+b)
其中,p是目标词的概率,WhL+b最后一层卷积层的最后一个单元输出。
3.多步注意力机制(Multi-step Attention)
原理与传统的attention相似,attention权重由decoder的当前输出hi和和encoder的的所有输出zi共同决定。
第一个公式:解码器decoder中当前状态hli经线性变换后与上一时刻得到的目标单词的embedding gi求和得到dli;
第二个公式:alij为decoder中第i层的attention,zuj为encoder最后一层的第j个位置的输出;
第三个公式:decoder当前层的条件输入cli为encoder输出zuj和初始输入词向量ej进行权重求和。
最终得到ci和hi相加组成新的hi。如此,在每一个卷积层都会进行attention的操作,得到的结果输入到下一层卷积层。
语料收集,预处理技术,在机器翻译中,需要用平行语料作为样本进行模型的训练。在网上搜集了数百万的句子,对这些数据进行清洗过滤后生成平行语料。将中文英文句子按行一一对应,制作完平行语料后,将其通过subword等算法的预处理。
subword技术,在机器翻译中通常会存在一个固定大小的词汇表,或称词典。在神经网络的训练过程中,我们要对每个单词进行embedding,即对于上述词汇表的每一个单词,都要建立一个词向量表,每个单词对应一个唯一的词向量。
对于拉丁语系这种词根词缀比较繁杂的语言,相同词根的词意思接近,例如:newer和newest,这两个词在语义上都是“刚出现的”、“新的”的意思,但是由于拼写不同,词向量表以及词汇表会分别为这两个词存为两个完全不同的项目。embedding操作就会出现很多问题,具体的包括词根词缀学习问题,不利于模型学习词缀之间的关系,如:newer,newest的关系无法推导到older,oldest的关系;OOV问题,无法很好的处理字典外词汇或稀少的词汇;稀疏问题,相同词根的词分为了各种形式,会导致某些词汇出现的频率很低,得不到充分的训练;计算量问题,词汇表过大且冗余,会导致embedding过程的计算量会变大。
为了解决上述问题,subword技术应运而生。subword将一个单词划分为更小的单元,例如将“newer”分为“new”以及“er”。这种将完整词分成短字词的形式,能够大大减少词汇表的大小。同时,表外词汇以及罕见词汇能以subword组合的形式表示出来,使得词汇表的表达力大大提升。
本实施例中所使用的subword技术为bpe算法。bpe(byte pair encoding),是一种根据字节对进行编码的算法。主要目的是为了数据压缩,算法思路为字符串里频率最常见的一对字符被一个没有在这个字符中出现的字符代替,并通过层层的迭代持续的代替。例如假设(‘e’,‘r’)经常顺序出现,则用一个新的标志‘er’来代替它们。
获取subword词表的流程(bpe)包括:准备足够大语料,将各个单词分解成最小单元,以英文26个字母和各种符号最为原始词表。统计相邻字符对出现的频次,挑出频次最高的相邻字符对,比如"e"和"r",合并组成"er",加入词表,训练语料中所有该相邻字符对都进行融合。重复上一步操作,直至词表中单词的数量达到期望,或下一个最高频的字节对出现频率为1。
编码,在生成subword词表后,对该词表按照子词长度由大到小排序。编码时,对于每个单词,遍历排好序的子词词表寻找是否有token是当前单词的子字符串,如果有,则该token是表示单词的tokens之一。从最长的token开始寻找,一直到最短的token,尝试将每个单词中的子字符串替换为token。在我们遍历完所有tokens后,将所有子字符串替换为tokens。如果仍然有子字符串没被替换但所有token都已遍历完毕,则将剩余的子词替换为特殊token,如<unk>。
解码是编码的逆过程,即将所有的token还原为原词的过程。
搭建翻译服务,利用flaskweb框架,加载训练好的模型并搭成服务。实现接收带有待翻译内容request,通过模型进行翻译,返回带有翻译结果的response。在初始化时加载训练好的模型,避免重复加载浪费时间。搭建flask服务,接受原文的内容,通过模型得到翻译结果。将原文与翻译结果包装在一起,作为response返回。
本实施例中,以youtube tv为例,youtube tv提供数十种海外电视频道直播,包含各大新闻及娱乐频道,内容多为纯英文。针对这个直播,本方法通过捕获英文字幕并实时翻译为中文并以字幕形式展示在视频中,实现无障碍观看直播。利用机器翻译,训练中英翻译模型,并以浏览器插件的形式连接模型与待翻译语句,将实时翻译加载到视频页面,解决观看海外电视台直播时的语言障碍,使观看体验更加流畅。
在本实施例中还提供了一种字幕实时翻译系统,该系统用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的系统较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
本实施例还提供一种字幕实时翻译系统,如图3所示,包括:
第一获取模块1,用于获取html页面的页面源码数据;
第一处理模块2,用于对页面源码数据进行数据解析,得到html页面中字幕的位置信息;
第二处理模块3,用于按照预设提取时间间隔实时提取位置信息所对应的标签的原始字幕数据;
第一判断模块4,用于判断当前时刻提取到的原始字幕数据是否与上一时刻提取到的原始字幕数据相同;
第三处理模块5,用于若当前时刻提取到的原始字幕数据与上一时刻提取到的原始字幕数据不相同,则将当前时刻提取到的原始字幕数据发送至翻译服务,以便翻译服务对接收到的原始字幕数据进行字幕翻译,待字幕翻译完成后发送翻译字幕数据;
第四处理模块6,用于接收翻译服务发送的翻译字幕数据;
第五处理模块7,用于对翻译字幕数据增加标签属性,组成DOM树;
第六处理模块8,用于将DOM树插入到html页面中进行翻译字幕数据的实时显示。
作为示例性的实施例,所述第三处理模块包括:第一获取单元,用于获取语种翻译类型,语种翻译类型包括html页面的原始语种类型和html页面翻译后所对应的目标语种类型;第一处理单元,用于根据语种翻译类型在语种翻译模型库中匹配对应的字幕翻译模型;第二处理单元,用于利用flaskweb框架,加载字幕翻译模型并搭建成翻译服务;第三处理单元,用于接收原始字幕数据;第四处理单元,用于将原始字幕数据输入至字幕翻译模型中进行字幕翻译,得到翻译字幕数据;第五处理单元,用于发送翻译字幕数据。
作为示例性的实施例,所述第五处理单元包括:第一处理子单元,用于将原始字幕数据与翻译字幕数据进行逐句对应,得到字幕翻译对照数据;第二处理子单元,发送字幕翻译对照数据。
作为示例性的实施例,还包括:第七处理模块,用于关闭原始字幕数据的显示。
作为示例性的实施例,第六处理模块包括:第六处理单元,用于构建预设个数的翻译字幕存储节点;第七处理单元,用于接收到新翻译字幕数据后,将后一个翻译字幕存储节点中的翻译字幕数据传递至前一个翻译字幕存储节点中,将接收到的新翻译字幕数据传递至最后一个翻译字幕存储节点中。
作为示例性的实施例,还包括:第八处理单元,用于获取新翻译字幕数据后的空闲时间间隔;判断单元,用于判断所述空闲时间间隔是否大于预设空闲时间阈值;第九处理单元,用于若所述空闲时间间隔大于所述预设空闲时间阈值,则关闭翻译字幕数据;第十处理单元,用于若所述空闲时间间隔小于或者等于所述预设空闲时间阈值,则继续显示翻译字幕数据。
作为示例性的实施例,第一处理模块包括:第十一处理单元,用于根据页面源码数据确定html页面字幕标签的标签属性和字幕标签所对应的父节点;第十二处理单元,用于根据标签属性遍历父节点下的所有子节点,得到每一个子节点所对应的字幕详细位置;第十三处理单元,用于将每一个子节点所对应的字幕详细位置组成html页面中字幕的位置信息。
本实施例中的字幕实时翻译系统是以功能单元的形式来呈现,这里的单元是指ASIC电路,执行一个或多个软件或固定程序的处理器和存储器,和/或其他可以提供上述功能的器件。
上述各个模块的更进一步的功能描述与上述对应实施例相同,在此不再赘述。
本发明实施例还提供了一种电子设备,如图4所示,该电子设备包括一个或多个处理器71以及存储器72,图4中以一个处理器71为例。
该控制器还可以包括:输入装置73和输出装置74。
处理器71、存储器72、输入装置73和输出装置74可以通过总线或者其他方式连接,图4中以通过总线连接为例。
处理器71可以为中央处理器(Central Processing Unit,CPU)。处理器71还可以为其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等芯片,或者上述各类芯片的组合。通用处理器可以是微处理器或者是任何常规的处理器等。
存储器72作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序、非暂态计算机可执行程序以及模块,如本申请实施例中的字幕实时翻译方法对应的程序指令/模块。处理器71通过运行存储在存储器72中的非暂态软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例的字幕实时翻译方法。
存储器72可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据服务器操作的处理装置的使用所创建的数据等。此外,存储器72可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施例中,存储器72可选包括相对于处理器71远程设置的存储器,这些远程存储器可以通过网络连接至网络连接装置。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
输入装置73可接收输入的数字或字符信息,以及产生与服务器的处理装置的用户设置以及功能控制有关的键信号输入。输出装置74可包括显示屏等显示设备。
一个或者多个模块存储在存储器72中,当被一个或者多个处理器71执行时,执行如图1-2所示的方法。
本领域技术人员可以理解,实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指示相关的硬件来完成,被执行的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述字幕实时翻译方法的实施例的流程。其中,存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)、随机存储记忆体(RanDOM AccessMemory,RAM)、快闪存储器(Flash Memory)、硬盘(Hard Disk Drive,缩写:HDD)或固态硬盘(Solid-State Drive,SSD)等;存储介质还可以包括上述种类的存储器的组合。
虽然结合附图描述了本发明的实施方式,但是本领域技术人员可以在不脱离本发明的精神和范围的情况下作出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。
Claims (9)
1.一种字幕实时翻译方法,其特征在于,包括:
获取html页面的页面源码数据;
对页面源码数据进行数据解析,得到html页面中字幕的位置信息;其中,对页面源码数据进行数据解析,得到html页面中字幕的位置信息的步骤中,包括:根据页面源码数据确定html页面字幕标签的标签属性和字幕标签所对应的父节点;根据标签属性遍历父节点下的所有子节点,得到每一个子节点所对应的字幕详细位置;将每一个子节点所对应的字幕详细位置组成html页面中字幕的位置信息;
按照预设提取时间间隔实时提取位置信息所对应的标签的原始字幕数据;
判断当前时刻提取到的原始字幕数据是否与上一时刻提取到的原始字幕数据相同;
若当前时刻提取到的原始字幕数据与上一时刻提取到的原始字幕数据不相同,则将当前时刻提取到的原始字幕数据发送至翻译服务,以便翻译服务对接收到的原始字幕数据进行字幕翻译,待字幕翻译完成后发送翻译字幕数据;
接收翻译服务发送的翻译字幕数据;
对翻译字幕数据增加标签属性,组成DOM树;
将DOM树插入到html页面中进行翻译字幕数据的实时显示。
2.根据权利要求1所述的字幕实时翻译方法,其特征在于,翻译服务对接收到的原始字幕数据进行字幕翻译,待字幕翻译完成后发送翻译字幕数据的步骤中,包括:
获取语种翻译类型,语种翻译类型包括html页面的原始语种类型和html页面翻译后所对应的目标语种类型;
根据语种翻译类型在语种翻译模型库中匹配对应的字幕翻译模型;
利用flaskweb框架,加载字幕翻译模型并搭建成翻译服务;
接收原始字幕数据;
将原始字幕数据输入至字幕翻译模型中进行字幕翻译,得到翻译字幕数据;
发送翻译字幕数据。
3.根据权利要求2所述的字幕实时翻译方法,其特征在于,发送翻译字幕数据的步骤中,包括:
将原始字幕数据与翻译字幕数据进行逐句对应,得到字幕翻译对照数据;
发送字幕翻译对照数据。
4.根据权利要求1所述的字幕实时翻译方法,其特征在于,接收翻译服务发送的翻译字幕数据的步骤之前,还包括:
关闭原始字幕数据的显示。
5.根据权利要求1所述的字幕实时翻译方法,其特征在于,将DOM树插入到html页面中进行翻译字幕数据的实时显示的步骤中,包括:
构建预设个数的翻译字幕存储节点;
接收到新翻译字幕数据后,将后一个翻译字幕存储节点中的翻译字幕数据传递至前一个翻译字幕存储节点中,将接收到的新翻译字幕数据传递至最后一个翻译字幕存储节点中。
6.根据权利要求5所述的字幕实时翻译方法,其特征在于,将接收到的新翻译字幕数据传递至最后一个翻译字幕存储节点中的步骤之后,还包括:
获取新翻译字幕数据后的空闲时间间隔;
判断所述空闲时间间隔是否大于预设空闲时间阈值;
若所述空闲时间间隔大于所述预设空闲时间阈值,则关闭翻译字幕数据;
若所述空闲时间间隔小于或者等于所述预设空闲时间阈值,则继续显示翻译字幕数据。
7.一种字幕实时翻译系统,其特征在于,包括:
第一获取模块,用于获取html页面的页面源码数据;
第一处理模块,用于对页面源码数据进行数据解析,得到html页面中字幕的位置信息;其中,第一处理模块包括:第十一处理单元,用于根据页面源码数据确定html页面字幕标签的标签属性和字幕标签所对应的父节点;第十二处理单元,用于根据标签属性遍历父节点下的所有子节点,得到每一个子节点所对应的字幕详细位置;第十三处理单元,用于将每一个子节点所对应的字幕详细位置组成html页面中字幕的位置信息;
第二处理模块,用于按照预设提取时间间隔实时提取位置信息所对应的标签的原始字幕数据;
第一判断模块,用于判断当前时刻提取到的原始字幕数据是否与上一时刻提取到的原始字幕数据相同;
第三处理模块,用于若当前时刻提取到的原始字幕数据与上一时刻提取到的原始字幕数据不相同,则将当前时刻提取到的原始字幕数据发送至翻译服务,以便翻译服务对接收到的原始字幕数据进行字幕翻译,待字幕翻译完成后发送翻译字幕数据;
第四处理模块,用于接收翻译服务发送的翻译字幕数据;
第五处理模块,用于对翻译字幕数据增加标签属性,组成DOM树;
第六处理模块,用于将DOM树插入到html页面中进行翻译字幕数据的实时显示。
8.一种电子设备,其特征在于,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器执行权利要求1-6任意一项所述的字幕实时翻译方法。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使所述计算机执行权利要求1-6任意一项所述的字幕实时翻译方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110595020.8A CN113438542B (zh) | 2021-05-28 | 2021-05-28 | 字幕实时翻译方法、系统、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110595020.8A CN113438542B (zh) | 2021-05-28 | 2021-05-28 | 字幕实时翻译方法、系统、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113438542A CN113438542A (zh) | 2021-09-24 |
CN113438542B true CN113438542B (zh) | 2022-11-08 |
Family
ID=77803191
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110595020.8A Active CN113438542B (zh) | 2021-05-28 | 2021-05-28 | 字幕实时翻译方法、系统、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113438542B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102567384A (zh) * | 2010-12-29 | 2012-07-11 | 盛乐信息技术(上海)有限公司 | 基于网页浏览器引擎的网页多语言动态切换方法及系统 |
CN102752664A (zh) * | 2012-06-29 | 2012-10-24 | 奇智软件(北京)有限公司 | 一种网页中文本字幕信息的显示方法和装置 |
CN104735549A (zh) * | 2012-06-29 | 2015-06-24 | 北京奇虎科技有限公司 | 一种网页中文本字幕信息的显示方法和装置 |
CN105740239A (zh) * | 2016-02-01 | 2016-07-06 | 中译语通科技(北京)有限公司 | 一种网页上文字的翻译方法及系统 |
CN110263351A (zh) * | 2019-06-17 | 2019-09-20 | 深圳前海微众银行股份有限公司 | 一种网页的多语言翻译方法、装置及设备 |
CN110362838A (zh) * | 2019-07-23 | 2019-10-22 | 闽南师范大学 | 一种基于人工智能的翻译装置 |
CN110516266A (zh) * | 2019-09-20 | 2019-11-29 | 张启 | 视频字幕自动翻译方法、装置、存储介质及计算机设备 |
CN110874537A (zh) * | 2018-08-31 | 2020-03-10 | 阿里巴巴集团控股有限公司 | 多语言翻译模型的生成方法、翻译方法及设备 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150356074A1 (en) * | 2014-03-28 | 2015-12-10 | Alibek ISSAEV | Machine Translation System and Method |
-
2021
- 2021-05-28 CN CN202110595020.8A patent/CN113438542B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102567384A (zh) * | 2010-12-29 | 2012-07-11 | 盛乐信息技术(上海)有限公司 | 基于网页浏览器引擎的网页多语言动态切换方法及系统 |
CN102752664A (zh) * | 2012-06-29 | 2012-10-24 | 奇智软件(北京)有限公司 | 一种网页中文本字幕信息的显示方法和装置 |
CN104735549A (zh) * | 2012-06-29 | 2015-06-24 | 北京奇虎科技有限公司 | 一种网页中文本字幕信息的显示方法和装置 |
CN105740239A (zh) * | 2016-02-01 | 2016-07-06 | 中译语通科技(北京)有限公司 | 一种网页上文字的翻译方法及系统 |
CN110874537A (zh) * | 2018-08-31 | 2020-03-10 | 阿里巴巴集团控股有限公司 | 多语言翻译模型的生成方法、翻译方法及设备 |
CN110263351A (zh) * | 2019-06-17 | 2019-09-20 | 深圳前海微众银行股份有限公司 | 一种网页的多语言翻译方法、装置及设备 |
CN110362838A (zh) * | 2019-07-23 | 2019-10-22 | 闽南师范大学 | 一种基于人工智能的翻译装置 |
CN110516266A (zh) * | 2019-09-20 | 2019-11-29 | 张启 | 视频字幕自动翻译方法、装置、存储介质及计算机设备 |
Also Published As
Publication number | Publication date |
---|---|
CN113438542A (zh) | 2021-09-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102237702B1 (ko) | 엔티티 관계 데이터 생성 방법, 장치, 기기 및 저장 매체 | |
US8626486B2 (en) | Automatic spelling correction for machine translation | |
WO2018010579A1 (zh) | 字符串的分词方法、装置及设备 | |
US10878247B2 (en) | Method and apparatus for generating information | |
CN111241832A (zh) | 核心实体标注方法、装置及电子设备 | |
CN111626062B (zh) | 文本语义编码方法及系统 | |
CN111967242A (zh) | 一种文本信息的抽取方法、装置及设备 | |
CN111931517A (zh) | 文本翻译方法、装置、电子设备以及存储介质 | |
EP3885966A1 (en) | Method and device for generating natural language description information | |
CN112329482A (zh) | 机器翻译方法、装置、电子设备和可读存储介质 | |
CN114491325A (zh) | 网页数据的提取方法和装置、计算机设备、存储介质 | |
CN112507697A (zh) | 事件名的生成方法、装置、设备及介质 | |
CN113438542B (zh) | 字幕实时翻译方法、系统、电子设备及存储介质 | |
CN104778232A (zh) | 一种基于长查询的搜索结果的优化方法和装置 | |
CN112507188A (zh) | 候选搜索词的生成方法、装置、设备及介质 | |
US20230125977A1 (en) | Apparatus and method for processing natural language | |
US10713293B2 (en) | Method and system of computer-processing one or more quotations in digital texts to determine author associated therewith | |
CN113127776A (zh) | 面包屑路径生成方法、装置及终端设备 | |
CN116208772A (zh) | 数据处理方法、装置、电子设备及计算机可读存储介质 | |
CN113591493B (zh) | 翻译模型的训练方法及翻译模型的装置 | |
CN109325110B (zh) | 印尼语文档摘要生成方法、装置、存储介质及终端设备 | |
CN116127983A (zh) | 文本编码方法、装置、电子设备及存储介质 | |
CN113987171A (zh) | 基于预训练模型变种的新闻文本分类方法及系统 | |
CN112035408A (zh) | 文本处理方法、装置、电子设备及存储介质 | |
CN113536797A (zh) | 一种切片文档关键信息单模型抽取方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |