CN102169689B - 一种语音合成插件的实现方法 - Google Patents
一种语音合成插件的实现方法 Download PDFInfo
- Publication number
- CN102169689B CN102169689B CN201110074067.6A CN201110074067A CN102169689B CN 102169689 B CN102169689 B CN 102169689B CN 201110074067 A CN201110074067 A CN 201110074067A CN 102169689 B CN102169689 B CN 102169689B
- Authority
- CN
- China
- Prior art keywords
- broadcast state
- request
- play
- player
- word
- 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
Landscapes
- Telephonic Communication Services (AREA)
Abstract
本发明属于语音合成技术领域,提供一种语音合成插件的实现方法。该方法包括:步骤S100,发送语音合成请求;步骤S200,利用电视端的Http Server检测并解析语音合成请求;步骤S300,利用合成引擎将文字信息进行语音合成并缓存,并利用语音播放器播放合成的语音。本发明通过利用电视端的Http Server检测并解析语音合成请求,利用合成引擎合成语音流,利用播放器播放语音,无需编写标准NPAPI插件中的大量接口,简化网络电视的语音合成插件的开发过程。
Description
技术领域
本发明属于语音合成技术领域,特别是一种语音合成插件的实现方法。
背景技术
目前,语音合成技术已经获得了广泛应用,特别是在网络设备上的应用尤其广泛。现在网络电视发展迅速,然而基于电视浏览器的语音合成技术却发展缓慢。
基于电视浏览器的语音合成技术发展缓慢的主要原因是:网络电视采用通常的NPAPI(网景插入式应用程序编程接口)标准插件的形式进行语音合成插件的开发,要实现的接口很多,开发过程较繁琐。
因此,有必要提供一种语音合成插件的实现方法,能够简化网络电视的语音合成插件的开发过程。
发明内容
本发明的目的在于提供一种语音合成插件的实现方法,旨在解决现有技术中进行语音合成插件的开发,要实现的接口很多,开发过程较繁琐的问题。
本发明是这样实现的,一种语音合成插件的实现方法,该方法包括:步骤S100,发送语音合成请求;步骤S200,利用电视端的HttpServer检测并解析语音合成请求;步骤S300,利用合成引擎将文字信息进行语音合成并缓存,并利用语音播放器播放合成的语音。
该语音合成插件的实现方法中,步骤S100具体包括如下步骤:步骤S101,用户点击语音合成页面的播放控制按钮;步骤S102,JS处理语音合成页面的按键操作,将请求的播放状态和所要播放的文字发送给http server。其中,步骤S101中,语音合成页面的每个播放控制按钮表示一个播放状态,且用户在点击播放控制按钮时,已经有需要进行语音播放的文字;步骤S102中,Java scrip处理用户在语音合成页面上的按键操作,并通过GET或POST方式将请求的播放状态和所要播放的文字发送给电视端的http server。
该语音合成插件的实现方法的步骤S200中,电视端的http server检测是否有请求到来,如果位于电视端的http server检测到语音合成页面发出的语音合成请求,则解析此请求,并获取请求的内容。此外,步骤S200中,http server以GET方式或POST方式解析http包头,解析出的内容包括:播放状态以及要播放的文字内容。
该语音合成插件的实现方法,步骤S300具体包括:步骤S301,Http Server传入播放状态和待语音合成的文字;步骤S302,合成引擎获取到待合成的文字以及播放状态;步骤S303,合成引擎判断播放状态是否为播放;如果否,则转步骤S304,等待播放状态的到来;如果是,则转步骤S305,合成引擎进行合成,并输出合成后的语音流写入一个buf缓冲区内,并记录下写入缓冲区中的位置writepos;在上述步骤S302至步骤305,合成引擎获取到待合成的文字以及播放状态并进行语音流合成的同时,语音播放器执行以下步骤:步骤S306,播放器获取播放状态;如果播放器获取的播放状态为是,则执行步骤S307;否则等待播放状态来临;步骤S307,判断buf缓冲区是否为空;如果为空,则执行步骤S308,如果不为空,则执行步骤S309;步骤S308,播放器等待合成引擎输出语音流;步骤S309,播放器从buf缓冲区中读入数据,记录读buf缓冲区的位置readpos,并开始播放;在播放时,需要进行步骤S310,判断writepos是否大于readpos;如果是,则进行步骤S311,否则进行步骤S312;步骤S311,合成引擎继续合成语音流,播放器继续播放合成的语音流;步骤S312,播放器停止播放,等待合成引擎输出语音流。其中,步骤S305中的buf缓冲区是环形的缓冲区。
本发明通过电视端的Http Server接收并解析语音合成界面的播放状态以及待播放的文字内容,利用合成引擎合成语音流,利用播放器播放语音,无需编写标准NPAPI插件中的大量接口,简化网络电视的语音合成插件的开发过程。
附图说明
图1是本发明语音合成插件实现方法的流程图;
图2是实现图1中步骤S100的流程图;
图3是实现图1中步骤S300的流程图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
请参阅图1,是本发明语音合成插件实现方法的流程图。该语音合成插件的合成方法包括如下步骤:
步骤S100,发送语音合成请求;
该步骤S100的流程图如图2所示,该步骤具体包括:
步骤S101,用户点击语音合成页面的播放控制按钮;
网络电视的浏览器启动之后,用户进入语音合成页面,并点击页面上的播放控制按钮,每个播放控制按钮表示一个播放状态,如播放,暂停,停止,继续,另外,用户在点击播放控制按钮时,已经默认有需要进行语音播放的文字;
步骤S102,JS处理按键操作,将请求的播放状态和所要播放的文字发送给http server;
Java scrip处理用户在语音合成页面上的按键操作,并通过GET或POST方式将请求的播放状态和所要播放的文字发送给http server;通常,Http Server设置在电视端;
接下来进行步骤S200,利用电视端的Http Server检测并解析语音合成请求;
位于电视端的http server一直检测是否有请求到来,如果位于电视端的http server检测到语音合成页面发出的语音合成请求,则解析此请求,并获取请求的内容,具体来说,http server检测到网页页面操作请求之后,解析http包头,如果前端网页的请求方式是GET方式,http server就会以GET方式对包头进行解析;如果前端网页的请求方式是POST方式,http server就以POST方式解析,并发送解析出来的内容,解析出的内容包括:播放状态以及要播放的文字内容。
Http server解析出播放状态以及待播放的文字内容后,将播放状态和待播放的文字内容写入一个共享内存中,直至处理完语音合成请求后,将共享内存中的待播放文字传送至合成引擎,将播放状态传送至合成引擎和语音播放器。
然后,执行步骤S300,利用合成引擎将文字信息进行语音合成并缓存,并利用语音播放器播放合成的语音;
步骤S300的流程图如图3所示,执行步骤S300的具体流程如下:
步骤S301,Http Server传入播放状态和待语音合成的文字;
步骤S302,合成引擎获取到待合成的文字以及播放状态;
步骤S303,合成引擎判断播放状态是否为播放;
如果否,则转步骤S304,等待播放状态的到来;
如果是,则转步骤S305,合成引擎进行合成,并输出合成后的语音流写入一个buf缓冲区内,并记录下写入缓冲区中的位置writepos;该缓冲区是环形的缓冲区;
在上述步骤S302至步骤305,合成引擎获取到待合成的文字以及播放状态并进行语音流合成的同时,播放器执行以下步骤:
步骤S306,播放器获取播放状态;如果播放器获取的播放状态为是,则执行步骤S307;否则等待播放状态来临(图未示);
步骤S307,判断buf缓冲区是否为空;如果为空,则执行步骤S308,如果不为空,则执行步骤S309;
步骤S308,播放器等待合成引擎输出语音流;
步骤S309,播放器从buf缓冲区中读入数据,记录读buf缓冲区的位置readpos,并开始播放;
在播放时,需要进行步骤S310,判断writepos是否大于readpos;如果是,则进行步骤S311,否则进行步骤S312;
步骤S311,合成引擎继续合成语音流,播放器继续播放合成的语音流;
步骤S312,播放器停止播放,等待合成引擎输出语音流。
本发明通过电视端的Http Server接收并解析语音合成界面的播放状态以及待播放的文字内容,利用合成引擎合成语音流,利用播放器播放语音流,无需编写标准NPAPI插件中的大量接口,简化网络电视的语音合成插件的开发过程。
此外,本发明中播放器播放过程中,buf缓冲区中readpos不能超过writepos,这样确保读的速度不超过写的速度,从而保证播放语音流的正确性。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (7)
1.一种语音合成插件的实现方法,该方法包括:
步骤S100,发送语音合成请求;
步骤S200,利用电视端的Http Server检测并解析语音合成请求;
步骤S300,利用合成引擎将文字信息进行语音合成并缓存,并利用语音播放器播放合成的语音;
步骤S300具体包括:
步骤S301,Http Server传入播放状态和待语音合成的文字;
步骤S302,合成引擎获取到待合成的文字以及播放状态;
步骤S303,合成引擎判断播放状态是否为播放,如果否,则转步骤S304,如果是,则转步骤S305;
步骤S304,等待播放状态的到来;
步骤S305,合成引擎进行合成,并输出合成后的语音流写入一个缓冲区内,并记录下写入缓冲区中的位置writepos;
在上述步骤S302至步骤305,合成引擎获取到待合成的文字以及播放状态并进行语音流合成的同时,语音播放器执行以下步骤:
步骤S306,播放器获取播放状态;如果播放器获取的播放状态为是,则执行步骤S307;否则等待播放状态来临;
步骤S307,判断缓冲区是否为空;如果为空,则执行步骤S308,如果不为空,则执行步骤S309;
步骤S308,播放器等待合成引擎输出语音流;
步骤S309,播放器从缓冲区中读入数据,记录读缓冲区的位置readpos,并开始播放;
在播放时,需要进行步骤S310,判断writepos是否大于readpos;如果是,则进行步骤S311,否则进行步骤S312;
步骤S311,合成引擎继续合成语音流,播放器继续播放合成的语音流;
步骤S312,播放器停止播放,等待合成引擎输出语音流。
2.根据权利要求1所述的语音合成插件的实现方法,其特征在于,该步骤S100具体包括如下步骤:
步骤S101,用户点击语音合成页面的播放控制按钮;
步骤S102,Java Scrip(JS)处理语音合成页面的按键操作,将请求的播放状态和所要播放的文字发送给http server。
3.根据权利要求2所述的语音合成插件的实现方法,其特征在于,步骤S101中,语音合成页面的每个播放控制按钮表示一个播放状态,且用户在点击播放控制按钮时,已经有需要进行语音播放的文字。
4.根据权利要求2所述的语音合成插件的实现方法,其特征在于,步骤S102中,Java Scrip处理用户在语音合成页面上的按键操作,并通过GET或POST方式将请求的播放状态和所要播放的文字发送给电视端的http server。
5.根据权利要求1所述的语音合成插件的实现方法,其特征在于,步骤S200中,电视端的http server检测是否有请求到来,如果位于电视端的http server检测到语音合成页面发出的语音合成请求,则解析此请求,并获取请求的内容。
6.根据权利要求5所述的语音合成插件的实现方法,其特征在于,步骤S200中,http server以GET方式或POST方式解析http包头,解析出的内容包括:播放状态以及要播放的文字内容。
7.根据权利要求1所述的语音合成插件的实现方法,其特征在于,步骤S305中的缓冲区是环形的缓冲区。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110074067.6A CN102169689B (zh) | 2011-03-25 | 2011-03-25 | 一种语音合成插件的实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110074067.6A CN102169689B (zh) | 2011-03-25 | 2011-03-25 | 一种语音合成插件的实现方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102169689A CN102169689A (zh) | 2011-08-31 |
CN102169689B true CN102169689B (zh) | 2014-04-02 |
Family
ID=44490825
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110074067.6A Active CN102169689B (zh) | 2011-03-25 | 2011-03-25 | 一种语音合成插件的实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102169689B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104104696A (zh) * | 2013-04-02 | 2014-10-15 | 深圳中兴力维技术有限公司 | 基于b/s结构的语音告警实现方法及系统 |
CN106782494A (zh) * | 2016-09-13 | 2017-05-31 | 乐视控股(北京)有限公司 | 语音合成处理方法及装置 |
CN107370814B (zh) * | 2017-07-21 | 2018-09-04 | 掌阅科技股份有限公司 | 电子书朗读处理方法、终端设备及计算机存储介质 |
CN112562638A (zh) * | 2020-11-26 | 2021-03-26 | 北京达佳互联信息技术有限公司 | 语音预览的方法、装置及电子设备 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101098507A (zh) * | 2007-06-29 | 2008-01-02 | 中兴通讯股份有限公司 | 一种提供语音合成应用统一开发平台的系统和方法 |
CN101729827A (zh) * | 2009-12-14 | 2010-06-09 | 深圳市同洲电子股份有限公司 | 一种语音服务方法、系统及数字电视接收终端和前端设备 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2865846A1 (fr) * | 2004-02-02 | 2005-08-05 | France Telecom | Systeme de synthese vocale |
KR20070106652A (ko) * | 2005-03-01 | 2007-11-05 | 오드캐스트, 인코포레이티드 | 실시간 클라이언트 서버의 문자-음성 변환 인터페이스를위한 시스템 및 방법 |
-
2011
- 2011-03-25 CN CN201110074067.6A patent/CN102169689B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101098507A (zh) * | 2007-06-29 | 2008-01-02 | 中兴通讯股份有限公司 | 一种提供语音合成应用统一开发平台的系统和方法 |
CN101729827A (zh) * | 2009-12-14 | 2010-06-09 | 深圳市同洲电子股份有限公司 | 一种语音服务方法、系统及数字电视接收终端和前端设备 |
Also Published As
Publication number | Publication date |
---|---|
CN102169689A (zh) | 2011-08-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20200294505A1 (en) | View-based voice interaction method, apparatus, server, terminal and medium | |
US9530415B2 (en) | System and method of providing speech processing in user interface | |
US9794605B2 (en) | Using time-stamped event entries to facilitate synchronizing data streams | |
US7848314B2 (en) | VOIP barge-in support for half-duplex DSR client on a full-duplex network | |
CN102591954B (zh) | 一种浏览器用数据加载方法及装置 | |
CN101567186B (zh) | 语音合成装置、方法、系统以及便携式信息终端 | |
US8290349B2 (en) | Playback apparatus, method, and program | |
RU2525440C2 (ru) | Основанные на языке разметки выбор и использование распознавателей для обработки произнесения | |
CN103744670A (zh) | 弹窗展示方法和装置 | |
CN102169689B (zh) | 一种语音合成插件的实现方法 | |
JP6665200B2 (ja) | マルチメディア情報処理方法、装置及びシステム、並びにコンピュータ記憶媒体 | |
CN113138743A (zh) | 使用音频水印的关键词组检测 | |
WO2015074548A1 (zh) | 浏览器中进行声音控制的方法和浏览器 | |
CN101784011A (zh) | 一种在移动终端中根据触发信息发布广告的控制装置及方法 | |
US20160203112A1 (en) | Method and arrangement for processing and providing media content | |
CN103179220A (zh) | 应用程序播放内容的分享方法及相关系统和装置 | |
CN102137279A (zh) | 一种实现便捷式电子设备在线视频掉线续播的方法 | |
WO2022111206A1 (zh) | 音频与文本的同步方法、装置、可读介质和电子设备 | |
CN104270531A (zh) | 连续播放多条消息的方法和装置 | |
CN110136713A (zh) | 用户在多模态交互中的对话方法及系统 | |
WO2014154097A1 (en) | Automatic page content reading-aloud method and device thereof | |
CN111510755A (zh) | 音视频的切换方法、装置、计算机设备及可读存储介质 | |
CN104581396A (zh) | 一种推广信息的处理方法及装置 | |
US20110167345A1 (en) | Method and apparatus for selective media download and playback | |
US11042587B2 (en) | Performing behavior analysis on audio track data to obtain a name of an application |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |