CN106878823A - 一种过滤文字弹幕并转换为语音弹幕的方法及系统 - Google Patents

一种过滤文字弹幕并转换为语音弹幕的方法及系统 Download PDF

Info

Publication number
CN106878823A
CN106878823A CN201611244295.2A CN201611244295A CN106878823A CN 106878823 A CN106878823 A CN 106878823A CN 201611244295 A CN201611244295 A CN 201611244295A CN 106878823 A CN106878823 A CN 106878823A
Authority
CN
China
Prior art keywords
barrage
word
conversion
list
chained list
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.)
Pending
Application number
CN201611244295.2A
Other languages
English (en)
Inventor
周志刚
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Wuhan Douyu Network Technology Co Ltd
Original Assignee
Wuhan Douyu Network Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Wuhan Douyu Network Technology Co Ltd filed Critical Wuhan Douyu Network Technology Co Ltd
Priority to CN201611244295.2A priority Critical patent/CN106878823A/zh
Publication of CN106878823A publication Critical patent/CN106878823A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/47End-user applications
    • H04N21/478Supplemental services, e.g. displaying phone caller identification, shopping application
    • H04N21/4788Supplemental services, e.g. displaying phone caller identification, shopping application communicating with other users, e.g. chatting
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing 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/435Processing of additional data, e.g. decrypting of additional data, reconstructing software from modules extracted from the transport stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing 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/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs
    • H04N21/4402Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display
    • H04N21/440236Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display by media transcoding, e.g. video is transformed into a slideshow of still pictures, audio is converted into text

Abstract

本发明公开了一种过滤文字弹幕并转换为语音弹幕的方法及系统,该方法包括以下步骤:S1、实时获取文字弹幕,设置转换链表;S2、设置优先转换的观众列表,若某文字弹幕的发送者名称存在于优先转换的观众列表,则将该文字弹幕存储至转换链表;S3、设置优先转换的弹幕内容,若某文字弹幕的弹幕内容与优先转换的弹幕内容相符合,则将该文字弹幕存储至转换链表;S4、设置过滤重复弹幕内容的时间段,若该时间段内有多条文字弹幕的弹幕内容相同,则过滤重复的文字弹幕,存储其中一条文字弹幕至转换链表;S5、依次从转换链表中取出文字弹幕,通过文字转语音引擎将文字弹幕转换为语音弹幕并播放。本发明能方便主播定制弹幕内容,并转为语音弹幕,方便收听。

Description

一种过滤文字弹幕并转换为语音弹幕的方法及系统
技术领域
本发明涉及视频弹幕技术领域,尤其涉及一种过滤文字弹幕并转换为语音弹幕的方法及系统。
背景技术
目前,现有的直播平台大多是直接使用文字弹幕来进行主播和观众间的互动,主播只能通过阅读屏幕上的文字来了解观众发送的弹幕信息,对于一些场景下,去阅读文字会变得比较不方便,比如在户外的时候,比如一些等级比较高的用户的文字弹幕等等,需要仔细去分辨屏幕的弹幕及弹幕内容。而语音弹幕相对于文字弹幕会更丰富些,同时在特殊场景下语音弹幕会更方便。而目前缺乏对文字弹幕转换为语音弹幕的方法。
发明内容
本发明要解决的技术问题在于针对现有技术中文字弹幕阅读不便,且缺乏文字弹幕转语音弹幕的方法的缺陷,提供一种过滤文字弹幕并转换为语音弹幕的方法及系统。
本发明解决其技术问题所采用的技术方案是:
本发明提供一种过滤文字弹幕并转换为语音弹幕的方法,包括以下步骤:
S1、实时获取文字弹幕,文字弹幕包括:发送者名称、弹幕内容和发送时间,设置转换链表,转换链表用于存储待转换为语音弹幕的文字弹幕;
S2、设置优先转换的观众列表,若某文字弹幕的发送者名称存在于优先转换的观众列表,则将该文字弹幕存储至转换链表;否则过滤掉该文字弹幕;
S3、设置优先转换的弹幕内容,若某文字弹幕的弹幕内容与优先转换的弹幕内容相符合,则将该文字弹幕存储至转换链表;否则过滤掉该文字弹幕;
S4、设置过滤重复弹幕内容的时间段,若该时间段内有多条文字弹幕的弹幕内容相同,则过滤重复的文字弹幕,存储其中一条文字弹幕至转换链表;
S5、依次从转换链表中取出文字弹幕,通过文字转语音引擎将文字弹幕转换为语音弹幕并播放。
进一步地,本发明的步骤S5中通过文字转语音引擎将文字弹幕转换为语音弹幕的方法为:
文字转语音引擎采用COM组件来实现,调用初始化函数CoInitialize来初始化COM组件;
调用接口函数创建函数CoCreateInstance来创建文字转语音的指针pSpVoice,指针pSpVoice有实现文字转语音的接口;
调用指针pSpVoice的接口函数Speak来实现文字转语音的功能,接口函数Speak为:
Speak(LPCWSTR*pwcs,DWORD dwFlags,ULONG*pulStreamNumber)
其中,参数pwcs为要朗读的字符串;dwFlags是用于控制朗读方式的标志;pulStreamNumber为输出参数,它指向本次朗读请求对应的当前输入流编号,每次朗读一个字符串时都会有一个流编号返回;
通过将文字弹幕传入参数pwcs,则接口函数Speak将文字弹幕转换为语音并播放出来。
进一步地,本发明的步骤S1中的转换链表的实现方法为:
使用STL的List数据结构来作为存储文字弹幕的转换链表,List数据结构用于保证文字弹幕的先进先出原则,List数据结构包括接口函数:push_back和front;其中,接口函数push_back用于将待转换的文字弹幕存储到List数据结构中,接口函数front用于从List数据结构中获取一个文字弹幕。
进一步地,本发明的步骤S2中设置优先转换的观众列表的方法为:
使用STL的MAP数据结构来存储主播设置的优先转换的观众列表,通过红黑树算法来实现MAP数据结构,能够快速查找数据;MAP数据结构包括接口函数:insert和Find;其中,接口函数insert用于将文字弹幕的发送者名称存储到优先转换的观众列表中;Find接口函数用于查找发送者名称是否存在与优先转换的观众列表中,若存在则将该发送者名称对应的所有文字弹幕都存储到转换链表中,否则过滤掉该发送者名称对应的文字弹幕。
进一步地,本发明的步骤S3中设置优先转换的弹幕内容的方法为:
使用STL的MAP数据结构来存储主播设置的优先转换的弹幕内容,通过红黑树算法来实现MAP数据结构,能够快速查找数据;MAP数据结构包括接口函数:insert和Find;其中,接口函数insert用于存储弹幕内容中的关键词;Find接口函数用于查找弹幕内容中是否包含该关键词,若包含则将该文字弹幕存储到转换链表中;否则过滤掉该文字弹幕。
进一步地,本发明的步骤S4中设置过滤重复弹幕内容的时间段的方法为:
在准备往转换链表中加入文字弹幕时,首先从已经存在的转换链表中查找是否存在相同的弹幕内容,若存在则判断找到的文字弹幕的发送时间和现在的时间差;如果时间差在主播设置的时间段内,则说明是重复弹幕则不加入到转换链表中,如果时间差超过主播设置的时间段,则将该文字弹幕加入到转换链表中。
进一步地,本发明的步骤S5中从转换链表中取出文字弹幕的方法为:
通过调用List数据结构的接口函数front从转换链表中取出表头位置的第一个文字弹幕,调用List数据结构的接口函数Pop_front从转换链表的表头位置删除第一个文字弹幕,直到所有文字弹幕均被取出。
本发明提供一种过滤文字弹幕并转换为语音弹幕的系统,包括:
弹幕获取单元,用于实时获取文字弹幕,文字弹幕包括:发送者名称、弹幕内容和发送时间,设置转换链表,转换链表用于存储待转换为语音弹幕的文字弹幕;
发送者过滤单元,用于设置优先转换的观众列表,若某文字弹幕的发送者名称存在于优先转换的观众列表,则将该文字弹幕存储至转换链表;否则过滤掉该文字弹幕;
内容过滤单元,用于设置优先转换的弹幕内容,若某文字弹幕的弹幕内容与优先转换的弹幕内容相符合,则将该文字弹幕存储至转换链表;否则过滤掉该文字弹幕;
重复弹幕过滤单元,用于设置过滤重复弹幕内容的时间段,若该时间段内有多条文字弹幕的弹幕内容相同,则过滤重复的文字弹幕,存储其中一条文字弹幕至转换链表;
语音弹幕转换单元,用于依次从转换链表中取出文字弹幕,通过文字转语音引擎将文字弹幕转换为语音弹幕并播放。
本发明产生的有益效果是:本发明的过滤文字弹幕并转换为语音弹幕的方法,能够对文字弹幕内容进行过滤,得到优先级较高的观众发送的文字弹幕,得到内容优先级较高的弹幕内容,并且能够过滤重复弹幕,使主播能够定制文字弹幕转换为语音弹幕的内容,提高了转换效率;并且通过文字弹幕转换为语音弹幕的方式,提供了多种获取弹幕信息的渠道,提高了弹幕的阅读效率,方便用户在不方便阅读文字弹幕时获取弹幕信息。
附图说明
下面将结合附图及实施例对本发明作进一步说明,附图中:
图1是本发明实施例的方法流程图;
图2是本发明实施例的设计流程图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
如图1所示,本发明实施例的过滤文字弹幕并转换为语音弹幕的方法,包括以下步骤:
S1、实时获取文字弹幕,文字弹幕包括:发送者名称、弹幕内容和发送时间,设置转换链表,转换链表用于存储待转换为语音弹幕的文字弹幕;
转换链表的实现方法为:
使用STL的List数据结构来作为存储文字弹幕的转换链表,List数据结构用于保证文字弹幕的先进先出原则,List数据结构包括接口函数:push_back和front;其中,接口函数push_back用于将待转换的文字弹幕存储到List数据结构中,接口函数front用于从List数据结构中获取一个文字弹幕。
S2、设置优先转换的观众列表,若某文字弹幕的发送者名称存在于优先转换的观众列表,则将该文字弹幕存储至转换链表;否则过滤掉该文字弹幕;
设置优先转换的观众列表的方法为:
使用STL的MAP数据结构来存储主播设置的优先转换的观众列表,通过红黑树算法来实现MAP数据结构,能够快速查找数据;MAP数据结构包括接口函数:insert和Find;其中,接口函数insert用于将文字弹幕的发送者名称存储到优先转换的观众列表中;Find接口函数用于查找发送者名称是否存在与优先转换的观众列表中,若存在则将该发送者名称对应的所有文字弹幕都存储到转换链表中,否则过滤掉该发送者名称对应的文字弹幕。
S3、设置优先转换的弹幕内容,若某文字弹幕的弹幕内容与优先转换的弹幕内容相符合,则将该文字弹幕存储至转换链表;否则过滤掉该文字弹幕;
设置优先转换的弹幕内容的方法为:
使用STL的MAP数据结构来存储主播设置的优先转换的弹幕内容,通过红黑树算法来实现MAP数据结构,能够快速查找数据;MAP数据结构包括接口函数:insert和Find;其中,接口函数insert用于存储弹幕内容中的关键词;Find接口函数用于查找弹幕内容中是否包含该关键词,若包含则将该文字弹幕存储到转换链表中;否则过滤掉该文字弹幕。
S4、设置过滤重复弹幕内容的时间段,若该时间段内有多条文字弹幕的弹幕内容相同,则过滤重复的文字弹幕,存储其中一条文字弹幕至转换链表;
设置过滤重复弹幕内容的时间段的方法为:
在准备往转换链表中加入文字弹幕时,首先从已经存在的转换链表中查找是否存在相同的弹幕内容,若存在则判断找到的文字弹幕的发送时间和现在的时间差;如果时间差在主播设置的时间段内,则说明是重复弹幕则不加入到转换链表中,如果时间差超过主播设置的时间段,则将该文字弹幕加入到转换链表中。
S5、依次从转换链表中取出文字弹幕,通过文字转语音引擎将文字弹幕转换为语音弹幕并播放。
从转换链表中取出文字弹幕的方法为:
通过调用List数据结构的接口函数front从转换链表中取出表头位置的第一个文字弹幕,调用List数据结构的接口函数Pop_front从转换链表的表头位置删除第一个文字弹幕,直到所有文字弹幕均被取出。
通过文字转语音引擎将文字弹幕转换为语音弹幕的方法为:
文字转语音引擎采用COM组件来实现,调用初始化函数CoInitialize来初始化COM组件;
调用接口函数创建函数CoCreateInstance来创建文字转语音的指针pSpVoice,指针pSpVoice有实现文字转语音的接口;
调用指针pSpVoice的接口函数Speak来实现文字转语音的功能,接口函数Speak为:
Speak(LPCWSTR*pwcs,DWORD dwFlags,ULONG*pulStreamNumber)
其中,参数pwcs为要朗读的字符串;dwFlags是用于控制朗读方式的标志;pulStreamNumber为输出参数,它指向本次朗读请求对应的当前输入流编号,每次朗读一个字符串时都会有一个流编号返回;
通过将文字弹幕传入参数pwcs,则接口函数Speak将文字弹幕转换为语音并播放出来。
本发明实施例的过滤文字弹幕并转换为语音弹幕的系统,包括:
弹幕获取单元,用于实时获取文字弹幕,文字弹幕包括:发送者名称、弹幕内容和发送时间,设置转换链表,转换链表用于存储待转换为语音弹幕的文字弹幕;
发送者过滤单元,用于设置优先转换的观众列表,若某文字弹幕的发送者名称存在于优先转换的观众列表,则将该文字弹幕存储至转换链表;否则过滤掉该文字弹幕;
内容过滤单元,用于设置优先转换的弹幕内容,若某文字弹幕的弹幕内容与优先转换的弹幕内容相符合,则将该文字弹幕存储至转换链表;否则过滤掉该文字弹幕;
重复弹幕过滤单元,用于设置过滤重复弹幕内容的时间段,若该时间段内有多条文字弹幕的弹幕内容相同,则过滤重复的文字弹幕,存储其中一条文字弹幕至转换链表;
语音弹幕转换单元,用于依次从转换链表中取出文字弹幕,通过文字转语音引擎将文字弹幕转换为语音弹幕并播放。
如图2所示,在本发明的另一个具体实施例中:
首先使用文字转语音引擎实现了文字弹幕转语音弹幕的功能。而如果是语音弹幕,转换引擎使用声道来播放声音,就可以实现语音弹幕的播放功能。对于语音弹幕和文字弹幕的很重要一个区别是,文字弹幕可以同时在屏幕显示多个,而语音弹幕同时只能播放一个,所以本文采用队列的形式将需要转换的文字弹幕存储起来,当转换了一个文字弹幕并进行播放了一个语音弹幕后,会将其从队列中删除掉。当有文字弹幕需要转换成语音弹幕时,则将其加入到文字弹幕转语音弹幕的队列中,而每次转换则从队列中取出一条文字弹幕使用转换引擎来将文字弹幕转换成语音弹幕。同时本文也提供了一些可以使用的定制化文字弹幕转语音弹幕功能。本文提供了定制化功能1:对于每一条弹幕,都是有携带弹幕的发送者是谁,及弹幕的内容,所以本文提供了主播可以设置对某些弹幕发送者的文字弹幕都直接转语音弹幕的功能,从而可以设置对于一些贡献值比较高的观众或者主播比较关心的观众来设置他们发送的文字弹幕自动转换成语音弹幕。本文提供了定制化功能2:主播可以对弹幕内容进行匹配,如果弹幕文字内容中有包含主播设置的弹幕内容,则将对应的文字弹幕转换成语音弹幕。本文提供了定制化功能3:对于一段时间内相同的文字弹幕,可以只转换一次,多长时间内相同的弹幕只播放一次可以由主播去设置。所有的语音弹幕的播放都是自动的将文字弹幕转换成语音弹幕并且自动播放,所以所有的转换都是智能的,可以定制化。
本发明实施例的实现方案包括如下步骤:
(1)编写文字弹幕转换语音弹幕的模块。
本实施例使用文字转语音引擎来实现文字弹幕转换成语音弹幕的功能。由于引擎采用COM组件(COM是开发软件组件的一种方法,组件实际上是一些小的二进制可执行程序,它们可以给应用程序,操作系统以及其他组件提供服务)来实现,所以首先调用函数初始化函数CoInitialize来初始化COM组件。然后调用接口函数创建函数CoCreateInstance来创建文字转语音的指针pSpVoice(此指针pSpVoice便是文字转语音的指针,该指针中有实现文字转语音的接口),通过调用指针pSpVoice的接口函数Speak(LPCWSTR*pwcs,DWORDdwFlags,ULONG*pulStreamNumber)来实现文字转语音的功能。其中参数pwcs为要朗读的字符串,dwFlags是用于控制朗读方式的标志,pulStreamNumber为输出参数,它指向本次朗读请求对应的当前输入流编号,每次朗读一个字符串时都会有一个流编号返回。所以通过传入参数pwcs为文字弹幕,则接口Speak会将文字的弹幕用语音播放出来。
至此:通过这个步骤就实现了将一个文字弹幕使用语音播放出来的功能。
(2)编写需要文字弹幕转语音弹幕的文字弹幕存储链表。
本实施例考虑到语音弹幕和文字弹幕的区别,语音弹幕同一时间只能播放一个语音弹幕,而文字弹幕同一时间可以显示多条,所以需要使用一种数据结构来存储需要转换语音的文字弹幕。而同时考虑使用场景,先出现的文字弹幕要先进行转换,所以使用队列来存储需要转换的文字弹幕。队列可以保障先存储的弹幕先进行转换。本文则使用STL的List数据结构来作为弹幕的存储结构(STL是一些容器的集合,也是一些算法的集合,他是一些数据结构的模板和基础,是标准化的组件)。而List则是STL的容器之一,List的实现是使用的链表来实现。List具有先进先出的原则。那么先存储的弹幕先进行语音转换。List具有2个接口函数push_back和front。其中push_back是用来将新的需要转换的文字弹幕存储到List中。其中front是从List中取出一个文字弹幕。那么有了存储和取出操作就可以实现文字弹幕的存储及取出功能。
至此:通过这一步就实现了一个文字弹幕的存储功能,其中也包括从队列中取出弹幕的功能。
(3)编写设置弹幕发送者过滤功能。
对于主播来说,需要一个可以定制化的需求,就是针对对自己贡献比较高的用户来读取其发送的弹幕。本文的实现是由每一条文字弹幕都携带有弹幕的发送者信息和弹幕内容信息和弹幕的时间信息,具体如下:
MessageAuth:“张三”
Message:“弹幕信息”
Time:“12”
其中MessageAuth则是弹幕的发送者信息的标示,具体为“张三”。
其中Message则是弹幕的内容标示,具体为“弹幕信息”。
其中Time则是弹幕的发送时间,具体为“12”.
具体的实现对弹幕发送者的过滤,由于弹幕的发送者可能是多个,同时对发送者的查找需要比较快的查找主播设置的弹幕发送者,所以本文采用STL的MAP结构来存储主播设置的弹幕发送者信息(其中STL的MAP数据结构是一种关联性容器,是使用红黑树的算法来实现,具有查找数据快速的特性),首先使用STL的MAP来存储主播设置的多个弹幕发送者的信息,其中信息就是弹幕发送者的名字,因为名字就是唯一表示弹幕发送者的标示,通过MAP事先存储多个发送者的名字,具体可以调用MAP的接口函数insert来存储一个弹幕发送者的信息,然后在收到弹幕时,可以通过调用MAP的接口函数Find来查找弹幕发送者是否存在在主播设置的列表中,如果存在则说明条件满足,对于他发送的所有弹幕都存储到文字转语音的弹幕队列中,如果不存在则过滤掉。
至此:通过这一步则实现了主播可以定制化的设置弹幕发送者信息来实现自动化的将文字弹幕转换成语音弹幕。
(4)编写弹幕文字匹配功能。
对于主播来说,可能弹幕中出现了某些关键词,则认为这条弹幕比较重要,是需要读出来的。所以本文提供了一个功能来让主播可以设置多条关键词,只要弹幕内容中出现了这些关键词的任意一条则自动的将该弹幕加入到转语音的List队列中。具体实现方式则是首先主播挑选一些关键词,然后本文提供设置功能,本文为了实现快速的查找,所以使用STL中的MAP容器来存储这些关键词,具体存储则是使用MAP的接口函数insert来存储一条关键词,而查找则使用MAP的接口函数Find来查找,凡是找到任意一条关键词,则自动的将该弹幕加入到文字弹幕转语音弹幕队列中。
至此:通过这一步实现了主播可以定制化的设置一些关键词,来将文字弹幕自动的转换成语音弹幕。
(5)编写弹幕文字重复过滤功能。
对于主播来说,在一段很短的时间内如果重复播放同一段语音弹幕可能体验效果不好,所以本文提供了一种方法,来让主播设置一个时间段,在这个时间段内相同的文字弹幕只会播放一次语音弹幕。具体实现是通过在准备需要往文字弹幕转换语音的弹幕中加入文字弹幕时,会首先从已经存在的转换队列中去查找,看是否在在队列中查找的到,如果找到了,则判断找到的弹幕时间和现在的时间差,如果时间差在主播设置的时间差内,则说明是重复弹幕则不加入到弹幕队列中,如果时间差超过主播设置的时间差,则将该文字弹幕加入到转换队列中。具体查找可以通过遍历List整个队列,查看队列的每个元素的文字弹幕和查找的文字弹幕是否相等,如果相等则说明找到了。
至此:通过这一步实现了主播可以定制化的设置一段时间内部播放相同的弹幕,如果弹幕相同则不会转换成语音进行播放。
(6)编写对文字弹幕链表播放语音弹幕。
当通过上面几个步骤将需要转换的文字弹幕存储在了步骤(2)中设计的队列中后,下面则需要对文字弹幕进行播放语音弹幕的功能。而本文则是通过调用List组件的接口函数front来从队列中取出第一个文字弹幕,然后调用List的接口函数Pop_front来从队列首删除一个文字弹幕。接着调用步骤(1)提供的文字弹幕转换语音弹幕功能,将文字弹幕转换成语音弹幕,同时进行播放。这样就实现了一个文字弹幕播放语音弹幕的功能。而这一步的操作则是不断的从List存储的文字弹幕取出弹幕并使用步骤(1)提供的功能进行播放语音弹幕,一直到List中无弹幕可取。
通过上面的几个步骤,本文实现了主播可定制化的将文字弹幕转换成语音弹幕的一个系统方案,主播可以使用定制化功能来实现自己的特色,同时也更丰富了弹幕的表现形式。对于主播来说一切转换都是智能的自动的,并且可定制化的。
应当理解的是,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,而所有这些改进和变换都应属于本发明所附权利要求的保护范围。

Claims (8)

1.一种过滤文字弹幕并转换为语音弹幕的方法,其特征在于,包括以下步骤:
S1、实时获取文字弹幕,文字弹幕包括:发送者名称、弹幕内容和发送时间,设置转换链表,转换链表用于存储待转换为语音弹幕的文字弹幕;
S2、设置优先转换的观众列表,若某文字弹幕的发送者名称存在于优先转换的观众列表,则将该文字弹幕存储至转换链表;否则过滤掉该文字弹幕;
S3、设置优先转换的弹幕内容,若某文字弹幕的弹幕内容与优先转换的弹幕内容相符合,则将该文字弹幕存储至转换链表;否则过滤掉该文字弹幕;
S4、设置过滤重复弹幕内容的时间段,若该时间段内有多条文字弹幕的弹幕内容相同,则过滤重复的文字弹幕,存储其中一条文字弹幕至转换链表;
S5、依次从转换链表中取出文字弹幕,通过文字转语音引擎将文字弹幕转换为语音弹幕并播放。
2.根据权利要求1所述的过滤文字弹幕并转换为语音弹幕的方法,其特征在于,步骤S5中通过文字转语音引擎将文字弹幕转换为语音弹幕的方法为:
文字转语音引擎采用COM组件来实现,调用初始化函数CoInitialize来初始化COM组件;
调用接口函数创建函数CoCreateInstance来创建文字转语音的指针pSpVoice,指针pSpVoice有实现文字转语音的接口;
调用指针pSpVoice的接口函数Speak来实现文字转语音的功能,接口函数Speak为:
Speak(LPCWSTR*pwcs,DWORD dwFlags,ULONG*pulStreamNumber)
其中,参数pwcs为要朗读的字符串;dwFlags是用于控制朗读方式的标志;pulStreamNumber为输出参数,它指向本次朗读请求对应的当前输入流编号,每次朗读一个字符串时都会有一个流编号返回;
通过将文字弹幕传入参数pwcs,则接口函数Speak将文字弹幕转换为语音并播放出来。
3.根据权利要求1所述的过滤文字弹幕并转换为语音弹幕的方法,其特征在于,步骤S1中的转换链表的实现方法为:
使用STL的List数据结构来作为存储文字弹幕的转换链表,List数据结构用于保证文字弹幕的先进先出原则,List数据结构包括接口函数:push_back和front;其中,接口函数push_back用于将待转换的文字弹幕存储到List数据结构中,接口函数front用于从List数据结构中获取一个文字弹幕。
4.根据权利要求1所述的过滤文字弹幕并转换为语音弹幕的方法,其特征在于,步骤S2中设置优先转换的观众列表的方法为:
使用STL的MAP数据结构来存储主播设置的优先转换的观众列表,通过红黑树算法来实现MAP数据结构,能够快速查找数据;MAP数据结构包括接口函数:insert和Find;其中,接口函数insert用于将文字弹幕的发送者名称存储到优先转换的观众列表中;Find接口函数用于查找发送者名称是否存在与优先转换的观众列表中,若存在则将该发送者名称对应的所有文字弹幕都存储到转换链表中,否则过滤掉该发送者名称对应的文字弹幕。
5.根据权利要求1所述的过滤文字弹幕并转换为语音弹幕的方法,其特征在于,步骤S3中设置优先转换的弹幕内容的方法为:
使用STL的MAP数据结构来存储主播设置的优先转换的弹幕内容,通过红黑树算法来实现MAP数据结构,能够快速查找数据;MAP数据结构包括接口函数:insert和Find;其中,接口函数insert用于存储弹幕内容中的关键词;Find接口函数用于查找弹幕内容中是否包含该关键词,若包含则将该文字弹幕存储到转换链表中;否则过滤掉该文字弹幕。
6.根据权利要求1所述的过滤文字弹幕并转换为语音弹幕的方法,其特征在于,步骤S4中设置过滤重复弹幕内容的时间段的方法为:
在准备往转换链表中加入文字弹幕时,首先从已经存在的转换链表中查找是否存在相同的弹幕内容,若存在则判断找到的文字弹幕的发送时间和现在的时间差;如果时间差在主播设置的时间段内,则说明是重复弹幕则不加入到转换链表中,如果时间差超过主播设置的时间段,则将该文字弹幕加入到转换链表中。
7.根据权利要求3所述的过滤文字弹幕并转换为语音弹幕的方法,其特征在于,步骤S5中从转换链表中取出文字弹幕的方法为:
通过调用List数据结构的接口函数front从转换链表中取出表头位置的第一个文字弹幕,调用List数据结构的接口函数Pop_front从转换链表的表头位置删除第一个文字弹幕,直到所有文字弹幕均被取出。
8.一种过滤文字弹幕并转换为语音弹幕的系统,其特征在于,包括:
弹幕获取单元,用于实时获取文字弹幕,文字弹幕包括:发送者名称、弹幕内容和发送时间,设置转换链表,转换链表用于存储待转换为语音弹幕的文字弹幕;
发送者过滤单元,用于设置优先转换的观众列表,若某文字弹幕的发送者名称存在于优先转换的观众列表,则将该文字弹幕存储至转换链表;否则过滤掉该文字弹幕;
内容过滤单元,用于设置优先转换的弹幕内容,若某文字弹幕的弹幕内容与优先转换的弹幕内容相符合,则将该文字弹幕存储至转换链表;否则过滤掉该文字弹幕;
重复弹幕过滤单元,用于设置过滤重复弹幕内容的时间段,若该时间段内有多条文字弹幕的弹幕内容相同,则过滤重复的文字弹幕,存储其中一条文字弹幕至转换链表;
语音弹幕转换单元,用于依次从转换链表中取出文字弹幕,通过文字转语音引擎将文字弹幕转换为语音弹幕并播放。
CN201611244295.2A 2016-12-29 2016-12-29 一种过滤文字弹幕并转换为语音弹幕的方法及系统 Pending CN106878823A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201611244295.2A CN106878823A (zh) 2016-12-29 2016-12-29 一种过滤文字弹幕并转换为语音弹幕的方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201611244295.2A CN106878823A (zh) 2016-12-29 2016-12-29 一种过滤文字弹幕并转换为语音弹幕的方法及系统

Publications (1)

Publication Number Publication Date
CN106878823A true CN106878823A (zh) 2017-06-20

Family

ID=59165114

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201611244295.2A Pending CN106878823A (zh) 2016-12-29 2016-12-29 一种过滤文字弹幕并转换为语音弹幕的方法及系统

Country Status (1)

Country Link
CN (1) CN106878823A (zh)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108243346A (zh) * 2018-01-09 2018-07-03 武汉斗鱼网络科技有限公司 一种过滤弹幕信息的方法、服务器及计算机设备
CN108495163A (zh) * 2018-04-08 2018-09-04 上海哔哩哔哩科技有限公司 视频弹幕朗读装置、系统、方法及计算机可读存储介质
CN108763288A (zh) * 2018-04-13 2018-11-06 武汉斗鱼网络科技有限公司 一种弹幕拦截方法及其相关设备
CN109379604A (zh) * 2018-08-15 2019-02-22 深圳点猫科技有限公司 一种基于教育云平台的视频弹幕制作方法及电子设备
CN109672920A (zh) * 2019-01-16 2019-04-23 武汉斗鱼鱼乐网络科技有限公司 一种点赞弹幕的方法及终端
CN110300334A (zh) * 2018-03-22 2019-10-01 上海哔哩哔哩科技有限公司 弹幕播放控制方法、服务器及弹幕播放控制系统
CN112882847A (zh) * 2021-02-24 2021-06-01 海南车智易通信息技术有限公司 一种弹幕消息处理方法、装置及系统
CN114598899A (zh) * 2022-03-15 2022-06-07 中科大数据研究院 一种基于爬虫的弹幕播报分析方法
CN115022729A (zh) * 2022-06-02 2022-09-06 上海哔哩哔哩科技有限公司 弹幕的播放方法及装置
CN115103212A (zh) * 2022-06-10 2022-09-23 咪咕文化科技有限公司 弹幕展示方法、弹幕处理方法、装置及电子设备

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104735543A (zh) * 2015-03-30 2015-06-24 北京奇艺世纪科技有限公司 一种弹幕显示方法及装置
CN105245960A (zh) * 2014-07-07 2016-01-13 乐视网信息技术(北京)股份有限公司 视频的弹幕显示方法及装置
CN105578222A (zh) * 2016-02-01 2016-05-11 百度在线网络技术(北京)有限公司 一种信息推送方法和装置
CN105898375A (zh) * 2016-07-01 2016-08-24 上海幻电信息科技有限公司 一种弹幕推送系统及推送方法
CN105959271A (zh) * 2016-04-25 2016-09-21 乐视控股(北京)有限公司 一种文字内容信息的语音转换方法、播放方法及装置
CN106101848A (zh) * 2016-06-08 2016-11-09 维沃移动通信有限公司 一种弹幕显示方法及电子设备

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105245960A (zh) * 2014-07-07 2016-01-13 乐视网信息技术(北京)股份有限公司 视频的弹幕显示方法及装置
CN104735543A (zh) * 2015-03-30 2015-06-24 北京奇艺世纪科技有限公司 一种弹幕显示方法及装置
CN105578222A (zh) * 2016-02-01 2016-05-11 百度在线网络技术(北京)有限公司 一种信息推送方法和装置
CN105959271A (zh) * 2016-04-25 2016-09-21 乐视控股(北京)有限公司 一种文字内容信息的语音转换方法、播放方法及装置
CN106101848A (zh) * 2016-06-08 2016-11-09 维沃移动通信有限公司 一种弹幕显示方法及电子设备
CN105898375A (zh) * 2016-07-01 2016-08-24 上海幻电信息科技有限公司 一种弹幕推送系统及推送方法

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108243346A (zh) * 2018-01-09 2018-07-03 武汉斗鱼网络科技有限公司 一种过滤弹幕信息的方法、服务器及计算机设备
CN108243346B (zh) * 2018-01-09 2020-10-16 武汉斗鱼网络科技有限公司 一种过滤弹幕信息的方法、服务器及计算机设备
CN110300334B (zh) * 2018-03-22 2022-04-12 上海哔哩哔哩科技有限公司 弹幕播放控制方法、服务器及弹幕播放控制系统
CN110300334A (zh) * 2018-03-22 2019-10-01 上海哔哩哔哩科技有限公司 弹幕播放控制方法、服务器及弹幕播放控制系统
CN108495163B (zh) * 2018-04-08 2021-03-16 上海哔哩哔哩科技有限公司 视频弹幕朗读装置、系统、方法及计算机可读存储介质
CN108495163A (zh) * 2018-04-08 2018-09-04 上海哔哩哔哩科技有限公司 视频弹幕朗读装置、系统、方法及计算机可读存储介质
CN108763288A (zh) * 2018-04-13 2018-11-06 武汉斗鱼网络科技有限公司 一种弹幕拦截方法及其相关设备
CN109379604A (zh) * 2018-08-15 2019-02-22 深圳点猫科技有限公司 一种基于教育云平台的视频弹幕制作方法及电子设备
CN109379604B (zh) * 2018-08-15 2021-04-09 深圳点猫科技有限公司 一种基于教育云平台的视频弹幕制作方法及电子设备
CN109672920A (zh) * 2019-01-16 2019-04-23 武汉斗鱼鱼乐网络科技有限公司 一种点赞弹幕的方法及终端
CN112882847A (zh) * 2021-02-24 2021-06-01 海南车智易通信息技术有限公司 一种弹幕消息处理方法、装置及系统
CN114598899A (zh) * 2022-03-15 2022-06-07 中科大数据研究院 一种基于爬虫的弹幕播报分析方法
CN115022729A (zh) * 2022-06-02 2022-09-06 上海哔哩哔哩科技有限公司 弹幕的播放方法及装置
CN115103212A (zh) * 2022-06-10 2022-09-23 咪咕文化科技有限公司 弹幕展示方法、弹幕处理方法、装置及电子设备
CN115103212B (zh) * 2022-06-10 2023-09-05 咪咕文化科技有限公司 弹幕展示方法、弹幕处理方法、装置及电子设备

Similar Documents

Publication Publication Date Title
CN106878823A (zh) 一种过滤文字弹幕并转换为语音弹幕的方法及系统
CN104679879B (zh) 一种照片智能存储方法和装置
CN102799639B (zh) 基于移动终端的文件读取方法和系统
CN109725797A (zh) 聊天群中活动报名统计方法、装置、电子设备及存储介质
CN102413236A (zh) 管理手机功能的方法和手机
CN112204942A (zh) 一种拍照方法和终端设备
CN103914767A (zh) 一种会议调度的方法、设备及系统
CN108961396A (zh) 三维场景的生成方法、装置及终端设备
CN104866488B (zh) 一种消息回复方法及电子设备
CN109684497A (zh) 一种图文匹配的信息发送方法、装置及电子设备
CN103338114A (zh) 一种基于Android系统通知消息的交互方法
CN1988564A (zh) 一种利用姓氏分类查找通信录的方法
CN110491367A (zh) 智能电视的语音转换方法及设备
CN110209904A (zh) 信息的分类方法、装置及存储介质
CN106954323A (zh) 一种基于台灯的信息共享系统及方法
CN106612358B (zh) 一种终端和设置联系人头像的方法
CN108810095A (zh) 一种新闻推送方法和装置
CN108564494A (zh) 教学资源推广共享装置
CN103369090B (zh) 一种终端播放声音的方法和装置
CN108495163A (zh) 视频弹幕朗读装置、系统、方法及计算机可读存储介质
CN109635174A (zh) 新闻信息流管理方法、装置、电子设备及存储介质
CN110312153A (zh) 一种网络语音留言箱访问方法及系统
Francis Urgent Media and Nontheatrical Ecologies: Jamaican Filmmaker Esther Figueroa in Conversation
CN104660798A (zh) 一种移动终端来电铃声的设置方法及装置
CN103475686A (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
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20170620