CN112307280A - 基于云服务器实现字符串转音频的方法及系统 - Google Patents
基于云服务器实现字符串转音频的方法及系统 Download PDFInfo
- Publication number
- CN112307280A CN112307280A CN202011611829.7A CN202011611829A CN112307280A CN 112307280 A CN112307280 A CN 112307280A CN 202011611829 A CN202011611829 A CN 202011611829A CN 112307280 A CN112307280 A CN 112307280A
- Authority
- CN
- China
- Prior art keywords
- character string
- data
- template
- processed
- notification
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
- G06F16/90335—Query processing
- G06F16/90344—Query processing by using string matching techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L13/00—Speech synthesis; Text to speech systems
- G10L13/02—Methods for producing synthetic speech; Speech synthesisers
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Multimedia (AREA)
- Acoustics & Sound (AREA)
- Human Computer Interaction (AREA)
- Health & Medical Sciences (AREA)
- Software Systems (AREA)
- Telephonic Communication Services (AREA)
Abstract
本发明提供了一种基于云服务器实现字符串转音频的方法及系统,属于通信领域。云服务器对接收到的待播报字符串数据进行拆分得到需要处理的字符串和不需要处理的字符串,将不需要处理的字符串保存为待组织数据,将需要处理的字符串与数据库中保存的字符串模板进行匹配,将匹配到的模板的编号保存为待组织数据,将调用语音合成服务器根据未匹配到模板的需要处理的字符串合成的音频数据保存为待组织数据;根据所有保存的待组织数据生成播报通知,将所述播报通知发送给云音箱。本发明减少了云服务器与云音箱之间以及云服务器与语音合成服务器之间的数据传输量。
Description
技术领域
本发明涉及信息安全领域,尤其涉及一种基于云服务器实现字符串转音频的方法及系统。
背景技术
目前市面上的云音箱大致可以分为两类,一类为支持播报字符串的TTS(Text ToSpeech,文本转语音)云音箱,另一类为支持播报音频文件的非TTS云音箱,如AMR(Adaptibve Multi-Rate)云音箱、WAV云音箱和MP3云音箱。支持播报字符串的TTS云音箱其优点在于可以减少云服务器与云音箱之间的数据传输量,但播报音质较差,给用户带来的听觉体验不佳。支持播报音频文件的非TTS云音箱其优点在于播报音质较好,但其只支持播报音频文件,不支持播报字符串,这就要求用户必须传音频文件才能使用非TTS云音箱。然而,传输音频文件不仅增加了云服务器与云音箱之间的数据传输量,且需要用户提前录制音频文件,这就给用户带来了极大的不便。因此,如何提供一种数据传输量小且音质较好的播报系统成为一个亟待解决的技术问题。
发明内容
为解决现有技术的不足,本发明提供了一种基于云服务器实现字符串转音频的方法及系统。
第一方面,本发明提供了一种基于云服务器实现字符串转音频的方法,包括如下步骤:
步骤101:云服务器接收用户服务器发送的播报请求,从所述播报请求中获取待播报字符串数据;
步骤102:所述云服务器按照所述待播报字符串数据的数据格式对所述待播报字符串数据进行解析,解析结果中包含需要处理的字符串,判断所述解析结果中是否还包含不需要处理的字符串,如果是,将所述不需要处理的字符串保存为待组织数据,执行步骤103,否则,直接执行步骤103;
步骤103:所述云服务器将解析结果中的每个需要处理的字符串分别与数据库中保存的字符串模板进行匹配,将匹配到的字符串模板的编号保存为待组织数据,若均匹配到模板则执行步骤104,若存在未匹配到字符串模板的需要处理的字符串则调用语音合成服务器得到未匹配到字符串模板的需要处理的字符串对应的音频数据,将所述音频数据保存为待组织数据,执行步骤104;
步骤104:所述云服务器根据保存的待组织数据生成播报通知,将所述播报通知发送给云音箱;
步骤105:所述云音箱解析接收到的播报通知,若所述播报通知中包含字符串模板的编号,则获取与所述字符串模板的编号对应的预置的音频模板保存为待组织音频,若所述播报通知中包含音频数据,则获取所述播报通知中的音频数据并保存为待组织音频,若所述播报通知中包含不需要处理的字符串,则获取所述不需要处理的字符串对应的预置的音频模板并保存为待组织音频,组织所述待组织音频得到待播报音频数据并播报。
第二方面,本发明提供了一种基于云服务器实现字符串转音频的系统,包括:云服务器和云音箱;
所述云服务器包括:接收获取模块、第一解析模块、保存模块、匹配模块、调用模块和生成发送模块;
所述接收获取模块,用于接收用户服务器发送的播报请求,从所述播报请求中获取待播报字符串数据;
所述第一解析模块,用于按照所述待播报字符串数据的数据格式对所述待播报字符串数据进行解析,解析结果中包含需要处理的字符串,判断所述解析结果中是否还包含不需要处理的字符串,如果是,触发所述保存模块,否则,触发所述匹配模块;
所述保存模块,用于将所述不需要处理的字符串保存为待组织数据,触发所述匹配模块;
所述匹配模块,用于将解析结果中的每个需要处理的字符串分别与数据库中保存的字符串模板进行匹配,将匹配到的字符串模板的编号保存为待组织数据,若均匹配到模板则触发所述生成发送模块,若存在未匹配到字符串模板的需要处理的字符串,触发所述调用模块;
所述调用模块,用于调用语音合成服务器得到未匹配到字符串模板的需要处理的字符串对应的音频数据,将所述音频数据保存为待组织数据,触发所述生成发送模块;
所述生成发送模块,用于根据所述匹配模块或所述调用模块保存的待组织数据生成播报通知,将所述播报通知发送给云音箱;
所述云音箱包括:第二解析模块、第一获取模块、第二获取模块、第三获取模块和组织播报模块;
所述第二解析模块,用于接收播报通知并进行解析;
所述第一获取模块,用于当所述第二解析模块解析的播报通知中包含字符串模板的编号时,获取与所述字符串模板的编号对应的预置的音频模板保存为待组织音频;
所述第二获取模块,用于当所述第二解析模块解析的播报通知中包含音频数据时,获取所述播报通知中的音频数据保存为待组织音频;
所述第三获取模块,用于当所述第二解析模块解析的播报通知中包含不需要处理的字符串时,获取所述不需要处理的字符串对应的预置的音频模板保存为待组织音频;
所述组织播报模块,用于组织所述第一获取模块或所述第二获取模块或所述第三获取模块保存的待组织音频得到待播报音频数据并播报。
本发明与现有技术相比,至少具有以下优点:本发明提供的一种基于云服务器实现字符串转音频的方法,减少了云服务器与云音箱之间的数据传输量,减少了调用语音合成服务器合成音频数据的次数,从而减少了云服务器与语音合成服务器之间的数据传输量,提高了播报音质,提升了用户体验。
附图说明
图1为本发明实施例1提供的一种基于云服务器实现字符串转音频的方法流程图;
图2为本发明实施例2提供的一种基于云服务器实现字符串转音频的方法的用户服务器向云服务器进行注册的过程的流程图;
图3为本发明实施例2提供的一种基于云服务器实现字符串转音频的方法的云音箱与云服务器进行绑定的过程的流程图;
图4为本发明实施例2提供的一种基于云服务器实现字符串转音频的方法的云音箱与服务器建立连接的过程的流程图;
图5为本发明实施例2提供的一种基于云服务器实现字符串转音频的方法流程图;
图6为本发明实施例3提供的一种基于云服务器实现字符串转音频的方法流程图;
图7为本发明实施例4提供的一种基于云服务器实现字符串转音频的系统模块框图。
具体实施方式
本申请提出了一种基于云服务器实现字符串转音频的方法及系统,下面结合附图,对本申请具体实施方式进行详细说明。所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本申请,而不能解释为对本申请的限制。
本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本申请所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。
为使本发明的目的、技术方案和优点更加清楚,下面结合附图对本发明实施方式作进一步地详细描述。
实施例1
本发明实施例1提供了一种基于云服务器实现字符串转音频的方法,如图1所示,包括如下步骤:
步骤101:云服务器接收用户服务器发送的播报请求,从播报请求中获取待播报字符串数据;
步骤102:云服务器按照待播报字符串数据的数据格式对待播报字符串数据进行解析,解析结果中包含需要处理的字符串,判断解析结果中是否还包含不需要处理的字符串,如果是,将不需要处理的字符串保存为待组织数据,执行步骤103,否则,直接执行步骤103;
步骤103:云服务器将解析结果中的每个需要处理的字符串分别与数据库中保存的字符串模板进行匹配,将匹配到的字符串模板的编号保存为待组织数据,若均匹配到模板则执行步骤104,若存在未匹配到字符串模板的需要处理的字符串则调用语音合成服务器得到未匹配到字符串模板的需要处理的字符串对应的音频数据,将音频数据保存为待组织数据,执行步骤104;
步骤104:云服务器根据保存的待组织数据生成播报通知,将播报通知发送给云音箱;
步骤105:云音箱解析接收到的播报通知,若播报通知中包含字符串模板的编号,则获取与字符串模板的编号对应的预置的音频模板保存为待组织音频,若播报通知中包含音频数据,则获取播报通知中的音频数据并保存为待组织音频,若播报通知中包含不需要处理的字符串,则获取不需要处理的字符串对应的预置的音频模板并保存为待组织音频,组织待组织音频得到待播报音频数据并播报。
可选地,本实施例中,步骤101还包括,从播报请求中获取云音箱的设备标识,步骤102之前还包括:
步骤a1:云服务器根据云音箱的设备标识判断云音箱的设备类型,如云音箱的设备类型为TTS设备,执行步骤a2,如云音箱的设备类型为非TTS设备,执行步骤102;
步骤a2:云服务器根据待播报字符串数据组织播报通知,向云音箱发送播报通知;
步骤a3:云音箱接收云服务器发送的播报通知,解析播报通知得到待播报字符串数据,将待播报字符串数据转换为待播报音频数据,对待播报音频数据进行语音播报,向云服务器返回播报结果。
可选地,本实施例中,步骤102具体包括:
步骤b0:云服务器判断待播报字符串数据中是否存在预设标识,如果是,执行步骤b1,否则,执行步骤b5;
步骤b1:云服务器从待播报字符串数据的起始位置开始获取预设标识,并将获取到的预设标识记为当前预设标识,截取当前预设标识之前的字符串并将截取的字符串与当前预设标识顺次拼接得到当前待拆分字符串;
步骤b2:云服务器从当前待拆分字符串中截取与预设标识相邻的数字字符串,将截取到的数字字符串记为当前不需要处理的字符串,将当前不需要处理的字符串保存为数字字符串类型的待组织数据,将当前待拆分字符串中的数字字符串之前的字符串作为当前需要处理的字符串;
步骤b3:云服务器判断从待播报字符串数据中截取当前待拆分字符串后待播报字符串数据中是否还存在字符串,如果是,执行步骤b4,否则,执行步骤b5;
步骤b4:云服务器将截取当前待拆分字符串后的待播报字符串数据中剩余的字符串作为新的待播报字符串数据,返回步骤b1;
步骤b5:云服务器将待播报字符串数据作为需要处理的字符串。
可选地,本实施例中,步骤103具体包括:
步骤c0: 云服务器按照需要处理的字符串和不需要处理的字符串在待播报字符串数据中的位置为需要处理的字符串和不需要处理的字符串依次分配索引;
步骤c1:云服务器获取需要处理的字符串,将当前获取到的需要处理的字符串与数据库中保存的字符串模板进行匹配,判断数据库中是否存在与当前获取到的需要处理的字符串匹配的字符串模板,如果是,执行步骤c2,否则,执行步骤c3;
步骤c2:云服务器获取与当前获取到的需要处理的字符串匹配的字符串模板的编号,将获取到的字符串模板的编号保存为模板编号类型的待组织数据,将模板编号类型的待组织数据与当前获取到的需要处理的字符串的索引对应保存,执行步骤c4;
步骤c3:云服务器调用语音合成服务器将当前获取到的需要处理的字符串合成音频数据,将合成的音频数据保存为音频数据类型的待组织数据,将音频数据类型的待组织数据与当前获取到的需要处理的字符串的索引对应保存,执行步骤c4;;
步骤c4:云服务器判断是否还存在未获取过的需要处理的字符串,如果是,返回步骤c1,否则,执行步骤104。
可选地,本实施例中,步骤104具体包括:
步骤L1:云服务器获取保存的待组织数据,判断获取到的待组织数据的类型,如为模板编号类型,则根据保存的模板编号通知标识和模板编号类型的待组织数据生成模板编号类型的通知数据,如为音频数据类型,则根据保存的音频数据通知标识和音频数据类型的待组织数据生成音频数据类型的通知数据,如为数字字符串类型,则根据保存的字符串通知标识和数字字符串类型的待组织数据生成数字字符串类型的通知数据;
步骤L2:云服务器按照通知数据中的待组织数据对应的索引顺次拼接通知数据得到播报通知,将播报通知发送给云音箱。
可选地,本实施例中,步骤105具体包括:
步骤m1:云音箱从接收到的播报通知中获取通知数据,根据通知数据中的通知标识判断当前获取到的通知数据的类型,如为模板编号类型的通知数据,执行步骤m2,如为字符串类型的通知数据,执行步骤m3,如为音频数据类型的通知数据,执行步骤m4;
步骤m2:云音箱从模板编号类型的通知数据中获取字符串模板的编号,获取与字符串模板的编号对应的预置的音频模板并保存,执行步骤m5;
步骤m3:云音箱从字符串类型的通知数据中获取不需要处理的字符串,获取与不需要处理的字符串对应的预置的音频模板并保存,执行步骤m5;
步骤m4:云音箱从音频数据类型的通知数据中获取音频数据并保存,执行步骤m5;
步骤m5:云音箱判断播报通知中是否还存在未获取过的通知数据,如果是,返回步骤m1,否则,执行步骤m6;
步骤m6:云音箱按照获取通知数据的顺序依次排列获取到的音频模板和接收到的音频数据得到待播报音频数据,对待播报音频数据进行语音播报,向云服务器返回播报结果。
可选地,本实施例中,步骤103中的字符串模板包括标准字符串模板、用户自定义字符串模板和临时字符串模板;步骤103中,云服务器将解析结果中的每个需要处理的字符串分别与数据库中保存的字符串模板进行匹配,将匹配到的字符串模板的编号保存为待组织数据具体包括:
步骤f1:云服务器将需要处理的字符串与数据库中保存的标准字符串模板进行匹配,如匹配到标准字符串模板,将匹配到的标准字符串模板的编号保存为标准模板编号类型的待组织数据,并将标准模板编号类型的待组织数据与需要处理的字符串的索引对应保存,如未匹配到标准字符串模板,执行步骤f2;
步骤f2:云服务器将未匹配到标准字符串模板的需要处理的字符串与数据库中保存的用户自定义字符串模板进行匹配,如匹配到用户自定义字符串模板,将匹配到的用户自定义字符串模板的编号保存为用户自定义模板编号类型的待组织数据,并将用户自定义模板编号类型的待组织数据与匹配到用户自定义字符串模板的需要处理的字符串的索引对应保存,如未匹配到用户自定义字符串模板,执行步骤f3;
步骤f3:云服务器将未匹配到用户自定义字符串模板的需要处理的字符串与数据库中保存的临时字符串模板进行匹配,如匹配到临时字符串模板,将匹配到临时字符串模板对应的音频数据保存为音频数据类型的待组织数据,并将音频数据类型的待组织数据与匹配到临时字符串模板的需要处理的字符串的索引对应保存。
可选地,本实施例中,步骤f3之后还包括:
步骤r1:云服务器更新与需要处理的字符串匹配的临时字符串模板的次数,如更新后的次数达到预设值,则将临时字符串模板作为标准字符串模板并保存到数据库中,向云音箱推送包含标准字符串模板的编号的更新模板通知;
步骤r2:云音箱接收更新模板通知,解析更新模板通知得到标准字符串模板的编号,根据标准字符串模板的编号向云服务器发送获取音频数据请求;
步骤r3:云服务器根据获取音频数据请求获取与标准字符串模板的编号对应的音频数据,将获取到的音频数据与标准字符串模板的编号发送给云音箱。
可选地,本实施例中,步骤103还包括:云服务器将将未匹配到字符串模板的需要处理的字符串设置为临时字符串模板,根据临时字符串模板合成音频数据并与临时字符串模板对应保存,设置临时字符串模板的次数为初始值。
可选地,本实施例中,该方法还包括用户服务器向云服务器进行注册的过程,包括如下步骤:
步骤g1:用户服务器向云服务器发送注册请求;
步骤g2:云服务器接收用户服务器发送的注册请求,生成用户标识和用户密钥并保存,向用户服务器发送用户标识和用户密钥;
步骤g3:用户服务器接收云服务器发送的用户标识和用户密钥并保存。
可选地,本实施例中,该方法还包括云音箱与云服务器进行绑定的过程,包括如下步骤:
步骤n1:用户服务器向云服务器发送绑定设备请求;绑定设备请求包含待绑定的云音箱的设备序列号和用户标识;
步骤n2:云服务器接收用户服务器发送的绑定设备请求,解析绑定设备请求得到待绑定的云音箱的设备序列号和用户标识,将云音箱的设备序列号和用户标识进行绑定,向用户服务器发送绑定响应;
步骤n3:用户服务器接收云服务器发送的绑定响应,完成设备绑定。
可选地,本实施例中,该方法还包括云音箱与云服务器建立连接的过程,包括如下步骤:
步骤q1:云音箱获取预存的设备序列号、系统版本信息和版本密钥,生成第一随机数,使用版本密钥对设备序列号、系统版本信息和第一随机数进行签名得到第一签名数据,根据设备序列号、系统版本信息、第一随机数和第一签名数据组织协商设备密钥请求,向云服务器发送协商设备密钥请求;
步骤q2:云服务器接收云音箱发送的协商设备密钥请求,解析协商设备密钥请求得到设备序列号、系统版本信息、第一随机数和第一签名数据,使用预存的版本密钥对第一签名数据进行验签,当验签通过时,执行步骤q3;
步骤q3:云服务器根据设备序列号和系统版本信息生成设备密钥,将设备密钥与设备序列号对应保存,向云音箱发送设备密钥;
步骤q4:云音箱接收并保存云服务器发送的设备密钥,生成设备名和设备密码,根据设备序列号、设备名和设备密码组织登录请求,向云服务器发送登录请求;
步骤q5:云服务器接收云音箱发送的登录请求,解析登录请求得到设备序列号、设备名和设备密码,根据设备序列号查找设备序列号对应的设备密钥,如查找到,则根据设备序列号、设备名和设备密钥对设备密码进行校验,当校验通过时,向云音箱发送登录成功响应;
步骤q6:云音箱接收云服务器发送的登录成功响应,与云服务器建立长连接。
本发明提供的一种基于云服务器实现字符串转音频的方法,减少了云服务器与云音箱之间的数据传输量,减少了调用语音合成服务器合成音频数据的次数,从而减少了云服务器与语音合成服务器之间的数据传输量,提高了播报音质,提升了用户体验。
实施例2
本发明实施例2提供了一种基于云服务器实现字符串转音频的方法,该方法包括用户服务器向云服务器进行注册的过程、云音箱与云服务器进行绑定的过程、云音箱与服务器建立连接的过程和云服务器将字符串数据处理为音频数据的过程;
具体地,本实施例中,用户服务器向云服务器进行注册的过程,如图2所示,包括如下步骤:
步骤201:用户服务器向云服务器发送注册请求;
步骤202:云服务器接收用户服务器发送的注册请求,生成用户标识和用户密钥并保存,向用户服务器发送用户标识和用户密钥;
例如:用户标识具体为:F3BB5A53862518D07A24;
用户密钥具体为:00A9D1F4F37A7F7CCBA66F25CBDBDE93D0705B63;
步骤203:用户服务器接收云服务器发送的用户标识和用户密钥并保存。
具体地,本实施例中,云音箱与云服务器进行绑定的过程,如图3所示,包括如下步骤:
步骤301:用户服务器向云服务器发送绑定设备请求;绑定设备请求包含待绑定的云音箱的设备序列号和用户标识;
步骤302:云服务器接收用户服务器发送的绑定设备请求,解析绑定设备请求得到待绑定的云音箱的设备序列号和用户标识,将云音箱的设备序列号和用户标识进行绑定,向用户服务器发送绑定响应;
步骤303:用户服务器接收云服务器发送的绑定响应,完成设备绑定。
具体地,本实施例中,云音箱与云服务器建立连接的过程,如图4所示,包括如下步骤:
步骤401:云音箱获取预存的设备序列号、系统版本信息和版本密钥,生成第一随机数,使用版本密钥对设备序列号、系统版本信息和第一随机数进行签名得到第一签名数据,根据设备序列号、系统版本信息、第一随机数和第一签名数据组织协商设备密钥请求,向云服务器发送协商设备密钥请求;
可选地,预存的设备序列号具体为:FT1023025700001;
系统版本信息具体为:1020;
版本密钥具体为:A71379A8AC2566D2675B28B6C0A659ED2EDDE27F9CCCA9AF2BF4BDBBEF5CB304;
第一随机数具体为:85888B8E9194979A;
第一签名数据具体为:GfqMMZycbd3bM7JLo2HneBPbdXQ=;
步骤402:云服务器接收云音箱发送的协商设备密钥请求,解析协商设备密钥请求得到设备序列号、系统版本信息、第一随机数和第一签名数据,使用预存的版本密钥对第一签名数据进行验签,当验签通过时,执行步骤403;
步骤403:云服务器根据设备序列号和系统版本信息生成设备密钥,将设备密钥与设备序列号对应保存,向云音箱发送获取密钥响应;
例如:云服务器根据设备序列号和系统版本信息生成的设备密钥具体为:"secret":"ZDVIV3VDQ2EwNDMzMEkwQjNoMFJsZHFKeEJqTGlOVGE=";
向云音箱发送的获取密钥响应具体为:"result":0,"random":"85888B8E9194979A","signature":"m7u+zebwNhuFJlHnXWHO60S/DhQ=","secret":"ZDVIV3VDQ2EwNDMzMEkwQjNoMFJsZHFKeEJqTGlOVGE="
步骤404:云音箱接收并保存云服务器发送的设备密钥,生成设备名和设备密码,根据设备序列号、设备名和设备密码组织登录请求,向云服务器发送登录请求;
步骤405:云服务器接收云音箱发送的登录请求,解析登录请求得到设备序列号、设备名和设备密码,根据设备序列号查找所述设备序列号对应的设备密钥,当查找到时,根据设备序列号、设备名和设备密钥对设备密码进行校验,当校验通过时,执行步骤406;
步骤406:云服务器向云音箱发送登录成功响应;
步骤407:云音箱接收云服务器发送的登录成功响应,与云服务器建立长连接;
具体地,本实施例中,云服务器将字符串数据处理为音频数据的过程,如图5所示,包括如下步骤:
步骤501:用户服务器接收待播报字符串数据和云音箱的设备序列号,获取保存的用户密钥和用户标识,使用用户密钥对待播报字符串数据进行加密处理得到第一加密数据,根据第一加密数据、用户标识和云音箱的设备序列号组织播报请求,向云服务器发送播报请求;
步骤502:云服务器接收用户服务器发送的播报请求,解析播报请求得到第一加密数据、用户标识和云音箱的设备序列号,获取所述用户标识对应的用户密钥;
步骤503:云服务器使用用户密钥对第一加密数据进行解密处理得到待播报字符串数据,向用户标识对应的用户服务器发送接收响应;
步骤504:云服务器根据接收到的设备序列号判断云音箱的设备类型,如为TTS设备,执行步骤520,如为非TTS设备,执行步骤505;
步骤505:云服务器按照待播报字符串数据的数据格式对待播报字符串数据进行解析得到需要处理的字符串和不需要处理的字符串,判断数据库中是否保存有与需要处理的字符串匹配的标准字符串模板,如果是,执行步骤506,否则,执行步骤508;
步骤506:云服务器根据与需要处理的字符串匹配的标准字符串模板的编号和不需要处理的字符串组织播报通知,向设备序列号对应的云音箱发送播报通知;
可选地,本实施例中,步骤506具体为:云服务器获取与需要处理的字符串匹配的标准字符串模板的编号,将与需要处理的字符串匹配的标准字符串模板的编号和不需要处理的字符串顺次拼接得到播报通知;
步骤507:云音箱接收云服务器发送的播报通知,解析播报通知得到与需要处理的字符串匹配的标准字符串模板的编号和不需要处理的字符串,分别获取与所述字符串模板的编号和所述不需要处理的字符串对应的音频模板,组织获取到的音频模板得到待播报音频数据,对待播报音频数据进行语音播报,向云服务器上报语音播报结果,结束;
可选地,本实施例中,按照预设规则组织获取到的字符串模板得到待播报音频数据具体为:云音箱与需要处理的字符串匹配的标准字符串模板和与不需要处理的字符串对应的字符串模板顺次拼接得到待播报音频数据;
步骤508:云服务器判断数据库中是否保存有与需要处理的字符串匹配的用户自定义字符串模板,如果是,执行步骤509,否则,执行步骤511;
步骤509:云服务器根据与需要处理的字符串匹配的用户自定义字符串模板的编号和不需要处理的字符串组织播报通知,向设备序列号对应的云音箱发送播报通知;
可选地,本实施例中,云服务器根据与需要处理的字符串匹配的用户自定义字符串模板的编号和不需要处理的字符串组织播报通知具体为:云服务器将与需要处理的字符串匹配的用户自定义字符串模板的编号和不需要处理的字符串顺次拼接得到播报通知;
步骤510:云音箱接收云服务器发送的播报通知,解析播报通知得到与需要处理的字符串匹配的用户自定义字符串模板的编号和不需要处理的字符串,分别获取与所述字符串模板的编号和所述不需要处理的字符串对应的音频模板,组织获取到的音频模板得到待播报音频数据,对待播报音频数据进行语音播报,向云服务器上报语音播报结果,结束;
步骤511:云服务器调用语音合成服务器将待播报字符串数据合成待播报音频数据,更新需要处理的字符串的次数;
步骤512:云服务器判断更新后的需要处理的字符串的次数是否达到预设值,如果是,执行步骤513,否则,执行步骤518;
步骤513:云服务器调用语音合成服务器将需要处理的字符串合成第一音频数据,将第一音频数据与需要处理的字符串对应保存,并将需要处理的字符串保存为标准字符串模板,根据待播报音频数据和需要处理的字符串对应的标准字符串模板的编号组织播报通知,向设备序列号对应的云音箱发送播报通知;
步骤514:云音箱接收云服务器发送的播报通知,解析播报通知得到待播报音频数据和需要处理的字符串对应的标准字符串模板的编号,对待播报音频数据进行语音播报,向云服务器上报语音播报结果;
步骤515:云音箱根据与需要处理的字符串对应的标准字符串模板的编号和设备序列号组织获取音频模板请求,向云服务器发送获取音频模板请求;
步骤516:云服务器接收云音箱发送的获取音频模板请求,解析获取音频模板请求得到标准字符串模板的编号和设备序列号,获取标准字符串模板的编号对应的第一音频数据,根据第一音频数据和获取音频模板请求中的标准字符串模板的编号组织获取音频模板响应,向设备序列号对应的云音箱发送获取音频模板响应;
步骤517:云音箱接收云服务器发送的获取音频模板响应,解析获取音频模板响应得到第一音频数据和标准字符串模板的编号,将第一音频数据和标准字符串模板的编号对应保存,结束;
步骤518:云服务器根据待播报音频数据组织播报通知,向设备序列号对应的云音箱发送播报通知;
步骤519:云音箱接收云服务器发送的播报通知,解析播报通知得到待播报音频数据,对待播报音频数据进行语音播报,向云服务器上报语音播报结果,结束;
步骤520:云服务器根据待播报字符串数据组织播报通知,向设备序列号对应的云音箱发送播报通知;
步骤521:云音箱接收云服务器发送的播报通知,解析播报通知得到待播报字符串数据,将待播报字符串数据转换为待播报音频数据,对待播报音频数据进行语音播报,向云服务器返回播报结果,结束。
本发明提供的一种基于云服务器实现字符串转音频的方法,减少了云服务器与云音箱之间的数据传输量,减少了调用语音合成服务器合成音频数据的次数,从而减少了云服务器与语音合成服务器之间的数据传输量,提高了播报音质,提升了用户体验。
实施例3
本发明实施例3提供了一种基于云服务器实现字符串转音频的方法,适用于包括用户服务器、云服务器和云音箱的系统,如图6所示,该方法包括如下步骤:
步骤601:用户服务器接收待播报字符串数据,使用保存的用户密钥对待播报字符串数据进行加密处理得到第一加密数据,获取保存的用户标识,根据第一加密数据和用户标识组织播报请求,向云服务器发送播报请求;
例如,用户密钥具体为:F3BB5A53862518D07A24;
用户标识具体为:00A9D1F4F37A7F7CCBA66F25CBDBDE93D0705B63;
待播报字符串数据具体为:张三水果店收款10000元优惠200元;
第一加密数据具体为:azZuWxX6hR6Km0cBDlCFSJIj+YcJt2u8S+zfSZUSsxHW+U4Qk+JSqt6hYJnr3Z4wnwC0b/dRkg2VAEY0mSnQiT3QTImSXtgFLOVMOfhI5OVyn29FKFi7GbtgVNqji1uH;
播报请求具体为:{ appkey : 00A9D1F4F37A7F7CCBA66F25CBDBDE93D0705B63,timestamp :20201123162001, nonce : dpRxkhjbauiclpKoqt, method: pushTTS,sign:azZuWxX6hR6Km0cBDlCFSJIj+YcJt2u8S+zfSZUSsxHW+U4Qk+JSqt6hYJnr3Z4wnwC0b/dRkg2VAEY0mSnQiT3QTImSXtgFLOVMOfhI5OVyn29FKFi7GbtgVNqji1uH };
步骤602:云服务器接收用户服务器发送的播报请求,解析播报请求得到第一加密数据和用户标识,获取所述用户标识对应的用户密钥;
例如:解析播报请求得到的第一加密数据具体为:azZuWxX6hR6Km0cBDlCFSJIj+YcJt2u8S+zfSZUSsxHW+U4Qk+JSqt6hYJnr3Z4wnwC0b/dRkg2VAEY0mSnQiT3QTImSXtgFLOVMOfhI5OVyn29FKFi7GbtgVNqji1uH;
解析播报请求得到的用户标识具体为:00A9D1F4F37A7F7CCBA66F25CBDBDE93D0705B63;
获取到的所述用户标识对应的用户密钥具体为:F3BB5A53862518D07A24;
步骤603:云服务器使用用户密钥对第一加密数据进行解密处理得到待播报字符串数据,向用户服务器发送接收响应;
例如:云服务器使用用户密钥使用用户密钥对第一加密数据进行解密处理得到待播报字符串数据具体为:张三水果店收款10000元优惠200元;
在一个可能的实施方式中,实施例1中的步骤102是通过下述步骤604至步骤609实现的;
步骤604:云服务器判断待播报字符串数据中是否存在预设标识,如果是,执行步骤605,否则,执行步骤609;
可选地,本实施例中,播报请求还包括云音箱的设备标识,步骤604之前还包括:
步骤a1:云服务器根据云音箱的设备标识判断云音箱的设备类型,如云音箱的设备类型为TTS设备,执行步骤a2,如云音箱的设备类型为非TTS设备,执行步骤604;
步骤a2:云服务器根据待播报字符串数据组织播报通知,向云音箱发送所述播报通知;
步骤a3:云音箱接收云服务器发送的播报通知,解析播报通知得到待播报字符串数据,将待播报字符串数据转换为待播报音频数据,对待播报音频数据进行语音播报,向云服务器返回播报结果。
可选地,本实施例中,预设标识为“元”;
例如:待播报字符串数据具体为:张三水果店收款10000元优惠200元;云服务器判断“张三水果店收款10000元优惠200元”中是否存在预设标识“元”,在本实施例中,存在“元”,执行步骤605;
步骤605:云服务器从待播报字符串数据的起始位置开始获取预设标识,当前获取到的预设标识记为当前预设标识,截取当前预设标识之前的字符串并与当前预设标识顺次拼接得到当前待拆分字符串;
可选地,本实施例中,预设标识为元;
例如:云服务器从“张三水果店收款10000元优惠200元”的起始位置开始获取预设标识“元”,将当前获取到的“元”记为当前预设标识,截取“元”之前的字符串“张三水果店收款100”并与当前预设标识“元”顺次拼接得到当前待拆分字符串“张三水果店收款100元”;
步骤606:云服务器从当前待拆分字符串中截取与预设标识相邻的数字字符串,将截取到的数字字符串记为当前不需要处理的字符串,将当前不需要处理的字符串保存为数字字符串类型的待组织数据,将待拆分字符串中数字字符串之前的字符串作为当前需要处理的字符串;
例如:云服务器从“张三水果店收款10000元” 中截取与“元”相邻的数字字符串“10000”,将截取到的“10000”记为当前不需要处理的字符串,将“10000”保存为数字字符串类型的待组织数据,将“张三水果店收款10000元”中 “10000”之前的“张三水果店收款” 作为当前需要处理的字符串;
优选地,本实施例中,待播报字符串由汉字字符和数字字符构成;
可选地,本实施例中,待播报字符串还可以由汉字字符的ASCII码和数字字符的ASCII码构成;云服务器对待播报字符串的执行步骤604至步骤609的处理操作是对ASCII码类型的待播报字符串进行的处理。
步骤607:云服务器从待播报字符串数据中截取当前待拆分字符串后判断待播报字符串数据中是否还存在字符串,如果是,执行步骤608,否则,执行步骤610;
可选地,云服务器判断从“张三水果店收款10000元优惠200元”中截取“张三水果店收款10000元”后,待播报字符串数据中是否还存在字符串,本实施例中判断为是,执行步骤608;
步骤608:云服务器将截取了当前待拆分字符串后的待播报字符串数据中剩余的字符串作为新的待播报字符串数据,返回步骤604;
可选地,本实施例中,服务器将截取“张三水果店收款10000元”后剩余的“优惠200元”作为新的待播报字符串数据,返回步骤604;
返回步骤604之后继续执行步骤604-步骤608的流程:
例如:新的待播报字符串数据具体为:优惠200元;云服务器判断“优惠200元”中是否存在预设标识“元”,在本实施例中,存在“元”,执行步骤605;
云服务器从“优惠200元”的起始位置开始获取 “元”,当前获取到的“元”记为当前预设标识,截取 “元”之前的字符串“优惠200”并与当前预设标识“元”顺次拼接得到当前待拆分字符串“优惠200元”;
云服务器从“优惠200元”中截取与 “元”相邻的数字字符串“200”,将截取到的“200”记为当前不需要处理的字符串,将“200” 保存为数字字符串类型的待组织数据,将“优惠200元”中“200” 之前的“优惠”作为当前需要处理的字符串;
云服务器判断从“优惠200元”中截取“优惠200元”后,待播报字符串数据中是否还存在字符串,本实施例中判判断为否,执行步骤610;
步骤609:云服务器将待播报字符串数据记为需要处理的字符串,执行步骤610;
在一个可能的实施方式中,实施例1中的步骤103是通过下述步骤610至步骤615实现的;
步骤610:云服务器按照需要处理的字符串和不需要处理的字符串在待播报字符串数据中的位置为需要处理的字符串和不需要处理的字符串依次分配索引;
例如;云服务器为“张三水果店收款”、“10000”、“优惠”和“200”分别分配索引为01、02、03和04;
步骤611: 云服务器获取需要处理的字符串,将当前获取到的需要处理的字符串与数据库中保存的字符串模板进行匹配,判断数据库中是否存在与当前获取到的需要处理的字符串匹配的字符串模板,如果是,执行步骤612,否则,执行步骤613;
例如: 当前获取到的需要处理的字符串为“张三水果店收款”,将“张三水果店收款”与数据库中保存的字符串模板进行匹配,判断数据库中是否存在与“张三水果店收款”匹配的字符串模板,本实施例中,判定数据库中不存在与“张三水果店收款”匹配的字符串模板,执行步骤613;
例如:当前获取到的需要处理的字符串为“优惠”,将“优惠”与数据库中保存的字符串模板进行匹配,判断数据库中是否存在与当前获取到的需要处理的字符串匹配的字符串模板,本实施例中,判定数据库中存在与“优惠”匹配的字符串模板,执行步骤612;
步骤612:云服务器获取与当前获取到的需要处理的字符串匹配的字符串模板的编号,将获取到的字符串模板的编号保存为模板编号类型的待组织数据,将编号类型的待组织数据与当前获取到的需要处理的字符串的索引对应保存,执行步骤614;
例如,本实施例中,云服务器获取的与“优惠”对应的字符串模板的编号2,将“优惠”对应的字符串模板的编号2保存为模板编号类型的待组织数据,并将编号2与索引03对应保存,执行步骤614;
可选地,本实施例中,步骤611和步骤612具体为:
步骤f1:云服务器将所述需要处理的字符串与数据库中保存的标准字符串模板进行匹配,如匹配到标准字符串模板,将匹配到的标准字符串模板的编号保存为标准模板编号类型的待组织数据,并将标准模板编号类型的待组织数据与所述需要处理的字符串的索引对应保存,如未匹配到标准字符串模板,执行步骤f2;
步骤f2:云服务器将未匹配到标准字符串模板的需要处理的字符串与数据库中保存的用户自定义字符串模板进行匹配,如匹配到用户自定义字符串模板,将匹配到的用户自定义字符串模板的编号保存为用户自定义模板编号类型的待组织数据,并将用户自定义模板编号类型的待组织数据与所述匹配到用户自定义字符串模板的需要处理的字符串的索引对应保存,如未匹配到用户自定义字符串模板,执行步骤f3;
步骤f3:云服务器将未匹配到用户自定义字符串模板的需要处理的字符串与数据库中保存的临时字符串模板进行匹配,如匹配到临时字符串模板,将匹配到临时字符串模板对应的音频数据保存为音频数据类型的待组织数据,并将所述音频数据类型的待组织数据与所述匹配到临时字符串模板的需要处理的字符串的索引对应保存, 如未匹配到临时字符串模板,执行步骤613。
可选地,本实施例中,步骤f3之后还包括:
步骤m1:云服务器更新与所述需要处理的字符串匹配的临时字符串模板的次数,如更新后的次数达到预设值,将临时字符串模板更新为标准字符串模板保存到数据库中,向云音箱推送包含标准字符串模板的编号的更新模板通知;
步骤m2:云音箱接收更新模板通知,解析更新模板通知得到标准字符串模板的编号,根据标准字符串模板的编号向云服务器发送获取音频数据请求;
步骤m3:云服务器根据获取音频数据请求获取与标准字符串模板的编号对应的音频数据,将获取到的音频数据与标准字符串模板的编号发送给所述云音箱。
步骤613:云服务器调用语音合成服务器将当前获取到的需要处理的字符串合成音频数据,将合成的音频数据保存为音频数据类型的待组织数据,将音频数据类型的待组织数据与当前获取到的需要处理的字符串的索引对应保存,执行步骤614;
例如:云服务器调用语音合成服务器将“张三水果店收款” 合成音频数据2321414D520A04FF2833F069FC31FF80008000041718833F241593B0C5E1190E04CA8B7B08A871CAD373C5A356041F30540DC654D40C9F07F71E042498193DC94705C410A92D6004D4DC4B7DF3153B326D8FE8C0045A42000FD6A3A80668E28CCE0425BD000EF19FECCCA1102004044714040FFE972B35402A39140471C009DEE0491A1B318864C404B02A23037E30BBC24A084A68042ACA6B00F9B9E54064BFE446043EDF080FB03BA8CCC880A8DA042578040EF2C762ACC2DB94CC043E9C040DE07A195524819748043E61081DD05619BD0422353004D4080DAEBFC8EBA8E3381E4804A6DF15E99BD395A4C2E9308204A60816AEDA8CE84AA922040A04A6611B6CC6795A334144052404A67C1E67E8D66E3BC236A58E0448B11D9BA8F06FBBC68458260448151AADC8FDCF3C2B35EC2A0471CD1EADD8E1BE0CB7A61B4804B0D41EAFDFEA43EDDB0ABC5E041ECA22AEC8FBDF3AB8D00EEA042AC42AAFD9E2542E90921866042ACA2A9FD75736C3B1544A8C0495E726AEAA08D4287E105B880471F5269EE048E9B48D4D2822046176230EECC38960475E1F70044BAE20CF8F738221106041A2040403B01EFF22228754AE4970044DBFC7BDFCCB18CFD89628200473C5E11CF883BF34C2C8A120048DF71C0FEA69C22A2F62011604226B040F9CF3C2AC30201B760403E8000FF99E6862020A9820042DE8000DB9CF78621A0EF92E0425E8000BF6EB08224298B62204AEC3032893585AA348A01134049292155C827E84F91122FFF60423B298F984DC389BA231527804201D8F283CBF1DE23798C83604D0C1322896693869D9D6F1EC0496C11BF9B292DE9ABF80093004558D1BFFE1F35C96B6076AC404586B33FDFFEFA6CCA4D5605C0415264BACD0F3CAA9B43FEDD0046A4256BEBCB5EC540105318C0458195AEFD7A27F64C20B357E042B375EACE7536ECC995F80800423515A9FE4AB7CA705198CD4043C90566FB9CB0A5600B840180490B1525EE9E69B95C36BBDB804D3774FFB9FD9282498310ED804AEF263C886D4E9B84E415640041E3A18F38F484879D5BF07A804F8594FC5895DF09356115C2804625D1C1F527472253F28538004D3D2FFBEE3A72383DD714F1A04489A2CABD3132A89B60448B122ACB38B5224C200B2C80448E727ADA1921A295B48328E04485D2AABAB656BAF390EDAB20495D232BDE1B0CBCC2AAA082404A6CA3AA9B1337BB505816A240448CA3F0E708BD35DDE02131C04A6E742BDA00C61EA4160A3B204A6614B77BE16AC3AEAF690A00448405297B77F82BD3D8841DA04D41056ABBCE964F173EE0C660442CE5AABE7F2D24B23356270045BFC5BAFD5A3343D5212549204D61060EEDA7AAFF4E789C16004D61065EEE59FAFC1798A76300496106AADD55A8EA63D92EB5E049610669BEC9D6BA3261534AC048F37666EA79E9E5E4A123AE804B0FC629BA78E1F3AAA0718D004A6DF655EA204757548510AA004A63D5CAD744E29D2BCAA176804A6085A6A7B56645A3B5FACDA04ABDF51357E8FAB3CF6B738E604A66133F30B1A85BF8C828D4429CE77FD4E7EBA109211AA73BA019DD09E73F213F908450010C1E7F8019987E67C000E802028140A34190CC6031017E73B7FD5CCFFFF338C41018EAF2D07F805002FD4CDBF9E613986350E8FFF8B13C6221CC1D34F62730F7FF888241E0CC5B0BF271F81C3E46A50907E3F167FFC459710E7C41815D0F05F06B21F76314F53D7FFF8FDC786B939F27203078C79E4F0C258FFFFFFCBD0001FF1FFC246E51FFFD9FFFF338C40B17C33F0E5FC12803B320197E8844A35769FCFABBA744EA755FFFF2A2DDBB2D35F46475B919188CBFD674F5A29E3C5C4C68E162A0A083389A0A5CC42144E53BC6C8E60E008000A08460B9AA77,将合成的音频数据与索引01对应保存;
步骤614:云服务器判断是否还存在未获取过的需要处理的字符串,如果是,返回步骤611,否则,执行步骤615;
在一个可能的实施方式中,实施例1中的步骤104是通过下述步骤615至步骤616实现的;
步骤615:云服务器获取保存的待组织数据,判断当前获取到的待组织数据的类型,如为模板编号类型,则根据保存的模板编号通知标识和模板编号类型的待组织数据生成模板编号类型的通知数据,如为音频数据类型,则根据保存的音频数据通知标识和音频数据类型的待组织数据生成音频数据类型的通知数据,如为数字字符串类型,则根据保存的字符串通知标识和数字字符串类型的待组织数据生成数字字符串类型的通知数据;
可选地,本实施例中,根据保存的模板编号通知标识和模板编号类型的待组织数据生成模板编号类型的通知数据具体为:云服务器获取保存的模板编号通知标识,计算模板编号类型的待组织数据的长度,将模板编号通知标识、模板编号类型的待组织数据的长度和模板编号类型的待组织数据顺次拼接得到模板编号类型的通知数据;
可选地,本实施例中,根据保存的音频数据通知标识和音频数据类型的待组织数据生成音频数据类型的通知数据具体为:云服务器获取保存的音频数据通知标识,计算音频数据类型的待组织数据的长度,将音频数据通知标识、音频数据类型的待组织数据的长度和音频数据类型的待组织数据顺次拼接得到音频数据类型的通知数据;
可选地,本实施例中,根据保存的字符串通知标识和数字字符串类型的待组织数据生成数字字符串类型的通知数据具体为:云服务器获取保存的字符串通知标识,计算数字字符串类型的待组织数据的长度,将字符串通知标识、数字字符串类型的待组织数据的长度和数字字符串类型的待组织数据顺次拼接得到数字字符串类型的通知数据;
例如:云服务器根据索引01获取到的待组织数据为2321414D520A04FF2833F069FC31FF80008000041718833F241593B0C5E1190E04CA8B7B08A871CAD373C5A356041F30540DC654D40C9F07F71E042498193DC94705C410A92D6004D4DC4B7DF3153B326D8FE8C0045A42000FD6A3A80668E28CCE0425BD000EF19FECCCA1102004044714040FFE972B35402A39140471C009DEE0491A1B318864C404B02A23037E30BBC24A084A68042ACA6B00F9B9E54064BFE446043EDF080FB03BA8CCC880A8DA042578040EF2C762ACC2DB94CC043E9C040DE07A195524819748043E61081DD05619BD0422353004D4080DAEBFC8EBA8E3381E4804A6DF15E99BD395A4C2E9308204A60816AEDA8CE84AA922040A04A6611B6CC6795A334144052404A67C1E67E8D66E3BC236A58E0448B11D9BA8F06FBBC68458260448151AADC8FDCF3C2B35EC2A0471CD1EADD8E1BE0CB7A61B4804B0D41EAFDFEA43EDDB0ABC5E041ECA22AEC8FBDF3AB8D00EEA042AC42AAFD9E2542E90921866042ACA2A9FD75736C3B1544A8C0495E726AEAA08D4287E105B880471F5269EE048E9B48D4D2822046176230EECC38960475E1F70044BAE20CF8F738221106041A2040403B01EFF22228754AE4970044DBFC7BDFCCB18CFD89628200473C5E11CF883BF34C2C8A120048DF71C0FEA69C22A2F62011604226B040F9CF3C2AC30201B760403E8000FF99E6862020A9820042DE8000DB9CF78621A0EF92E0425E8000BF6EB08224298B62204AEC3032893585AA348A01134049292155C827E84F91122FFF60423B298F984DC389BA231527804201D8F283CBF1DE23798C83604D0C1322896693869D9D6F1EC0496C11BF9B292DE9ABF80093004558D1BFFE1F35C96B6076AC404586B33FDFFEFA6CCA4D5605C0415264BACD0F3CAA9B43FEDD0046A4256BEBCB5EC540105318C0458195AEFD7A27F64C20B357E042B375EACE7536ECC995F80800423515A9FE4AB7CA705198CD4043C90566FB9CB0A5600B840180490B1525EE9E69B95C36BBDB804D3774FFB9FD9282498310ED804AEF263C886D4E9B84E415640041E3A18F38F484879D5BF07A804F8594FC5895DF09356115C2804625D1C1F527472253F28538004D3D2FFBEE3A72383DD714F1A04489A2CABD3132A89B60448B122ACB38B5224C200B2C80448E727ADA1921A295B48328E04485D2AABAB656BAF390EDAB20495D232BDE1B0CBCC2AAA082404A6CA3AA9B1337BB505816A240448CA3F0E708BD35DDE02131C04A6E742BDA00C61EA4160A3B204A6614B77BE16AC3AEAF690A00448405297B77F82BD3D8841DA04D41056ABBCE964F173EE0C660442CE5AABE7F2D24B23356270045BFC5BAFD5A3343D5212549204D61060EEDA7AAFF4E789C16004D61065EEE59FAFC1798A76300496106AADD55A8EA63D92EB5E049610669BEC9D6BA3261534AC048F37666EA79E9E5E4A123AE804B0FC629BA78E1F3AAA0718D004A6DF655EA204757548510AA004A63D5CAD744E29D2BCAA176804A6085A6A7B56645A3B5FACDA04ABDF51357E8FAB3CF6B738E604A66133F30B1A85BF8C828D4429CE77FD4E7EBA109211AA73BA019DD09E73F213F908450010C1E7F8019987E67C000E802028140A34190CC6031017E73B7FD5CCFFFF338C41018EAF2D07F805002FD4CDBF9E613986350E8FFF8B13C6221CC1D34F62730F7FF888241E0CC5B0BF271F81C3E46A50907E3F167FFC459710E7C41815D0F05F06B21F76314F53D7FFF8FDC786B939F27203078C79E4F0C258FFFFFFCBD0001FF1FFC246E51FFFD9FFFF338C40B17C33F0E5FC12803B320197E8844A35769FCFABBA744EA755FFFF2A2DDBB2D35F46475B919188CBFD674F5A29E3C5C4C68E162A0A083389A0A5CC42144E53BC6C8E60E008000A08460B9AA77,其类型为音频数据类型,则获取保存的音频数据通知标识AA03,计算音频数据类型的待组织数据的长度为2699,将AA03、2669和上述音频数据类型的待组织数据顺次拼接得到的音频数据类型的通知数据具体为:AA0326992321414D520A04FF2833F069FC31FF80008000041718833F241593B0C5E1190E04CA8B7B08A871CAD373C5A356041F30540DC654D40C9F07F71E042498193DC94705C410A92D6004D4DC4B7DF3153B326D8FE8C0045A42000FD6A3A80668E28CCE0425BD000EF19FECCCA1102004044714040FFE972B35402A39140471C009DEE0491A1B318864C404B02A23037E30BBC24A084A68042ACA6B00F9B9E54064BFE446043EDF080FB03BA8CCC880A8DA042578040EF2C762ACC2DB94CC043E9C040DE07A195524819748043E61081DD05619BD0422353004D4080DAEBFC8EBA8E3381E4804A6DF15E99BD395A4C2E9308204A60816AEDA8CE84AA922040A04A6611B6CC6795A334144052404A67C1E67E8D66E3BC236A58E0448B11D9BA8F06FBBC68458260448151AADC8FDCF3C2B35EC2A0471CD1EADD8E1BE0CB7A61B4804B0D41EAFDFEA43EDDB0ABC5E041ECA22AEC8FBDF3AB8D00EEA042AC42AAFD9E2542E90921866042ACA2A9FD75736C3B1544A8C0495E726AEAA08D4287E105B880471F5269EE048E9B48D4D2822046176230EECC38960475E1F70044BAE20CF8F738221106041A2040403B01EFF22228754AE4970044DBFC7BDFCCB18CFD89628200473C5E11CF883BF34C2C8A120048DF71C0FEA69C22A2F62011604226B040F9CF3C2AC30201B760403E8000FF99E6862020A9820042DE8000DB9CF78621A0EF92E0425E8000BF6EB08224298B62204AEC3032893585AA348A01134049292155C827E84F91122FFF60423B298F984DC389BA231527804201D8F283CBF1DE23798C83604D0C1322896693869D9D6F1EC0496C11BF9B292DE9ABF80093004558D1BFFE1F35C96B6076AC404586B33FDFFEFA6CCA4D5605C0415264BACD0F3CAA9B43FEDD0046A4256BEBCB5EC540105318C0458195AEFD7A27F64C20B357E042B375EACE7536ECC995F80800423515A9FE4AB7CA705198CD4043C90566FB9CB0A5600B840180490B1525EE9E69B95C36BBDB804D3774FFB9FD9282498310ED804AEF263C886D4E9B84E415640041E3A18F38F484879D5BF07A804F8594FC5895DF09356115C2804625D1C1F527472253F28538004D3D2FFBEE3A72383DD714F1A04489A2CABD3132A89B60448B122ACB38B5224C200B2C80448E727ADA1921A295B48328E04485D2AABAB656BAF390EDAB20495D232BDE1B0CBCC2AAA082404A6CA3AA9B1337BB505816A240448CA3F0E708BD35DDE02131C04A6E742BDA00C61EA4160A3B204A6614B77BE16AC3AEAF690A00448405297B77F82BD3D8841DA04D41056ABBCE964F173EE0C660442CE5AABE7F2D24B23356270045BFC5BAFD5A3343D5212549204D61060EEDA7AAFF4E789C16004D61065EEE59FAFC1798A76300496106AADD55A8EA63D92EB5E049610669BEC9D6BA3261534AC048F37666EA79E9E5E4A123AE804B0FC629BA78E1F3AAA0718D004A6DF655EA204757548510AA004A63D5CAD744E29D2BCAA176804A6085A6A7B56645A3B5FACDA04ABDF51357E8FAB3CF6B738E604A66133F30B1A85BF8C828D4429CE77FD4E7EBA109211AA73BA019DD09E73F213F908450010C1E7F8019987E67C000E802028140A34190CC6031017E73B7FD5CCFFFF338C41018EAF2D07F805002FD4CDBF9E613986350E8FFF8B13C6221CC1D34F62730F7FF888241E0CC5B0BF271F81C3E46A50907E3F167FFC459710E7C41815D0F05F06B21F76314F53D7FFF8FDC786B939F27203078C79E4F0C258FFFFFFCBD0001FF1FFC246E51FFFD9FFFF338C40B17C33F0E5FC12803B320197E8844A35769FCFABBA744EA755FFFF2A2DDBB2D35F46475B919188CBFD674F5A29E3C5C4C68E162A0A083389A0A5CC42144E53BC6C8E60E008000A08460B9AA77;
云服务器根据索引02获取到的待组织数据为“10000”,其类型为数字字符串类型,则获取保存的字符串通知标识AA02,计算数字字符串类型的待组织数据“10000”的长度为0005,将AA02、0005和10000顺次拼接得到数字字符串类型的通知数据具体为:AA02000510000;
云服务器根据索引03获取到的待组织数据为“2”,其类型为模板编号类型,则获取保存的模板编号通知标识AA01,计算模板编号类型的待组织数据长度为0001,模板编号类型的待组织数据为2,将AA01、0001和2顺次拼接得到模板编号类型的通知数据AA0100012;
云服务器根据索引04获取到的待组织数据为“200”,其类型为数字字符串类型,则获取保存的字符串通知标识AA02,计算数字字符串类型的待组织数据“200”的长度为0003,将AA02、0003和200顺次拼接得到字符串类型的通知数据AA020003200;
可选地,本实施例中,步骤614还包括:云服务器将未匹配到字符串模板的需要处理的字符串设置为临时字符串模板,根据该临时字符串模板合成音频数据并与临时字符串模板对应保存,设置临时字符串模板的次数为初始值。
例如:设置临时字符串模板的次数为初始值为1;
步骤616:云服务器按照各通知数据中的待组织数据对应的索引顺次拼接各通知数据得到播报通知,将播报通知发送给云音箱。
例如:本实施例中,播报通知具体为:5C9A596200035B04AA0326992321414D520A04FF2833F069FC31FF80008000041718833F241593B0C5E1190E04CA8B7B08A871CAD373C5A356041F30540DC654D40C9F07F71E042498193DC94705C410A92D6004D4DC4B7DF3153B326D8FE8C0045A42000FD6A3A80668E28CCE0425BD000EF19FECCCA1102004044714040FFE972B35402A39140471C009DEE0491A1B318864C404B02A23037E30BBC24A084A68042ACA6B00F9B9E54064BFE446043EDF080FB03BA8CCC880A8DA042578040EF2C762ACC2DB94CC043E9C040DE07A195524819748043E61081DD05619BD0422353004D4080DAEBFC8EBA8E3381E4804A6DF15E99BD395A4C2E9308204A60816AEDA8CE84AA922040A04A6611B6CC6795A334144052404A67C1E67E8D66E3BC236A58E0448B11D9BA8F06FBBC68458260448151AADC8FDCF3C2B35EC2A0471CD1EADD8E1BE0CB7A61B4804B0D41EAFDFEA43EDDB0ABC5E041ECA22AEC8FBDF3AB8D00EEA042AC42AAFD9E2542E90921866042ACA2A9FD75736C3B1544A8C0495E726AEAA08D4287E105B880471F5269EE048E9B48D4D2822046176230EECC38960475E1F70044BAE20CF8F738221106041A2040403B01EFF22228754AE4970044DBFC7BDFCCB18CFD89628200473C5E11CF883BF34C2C8A120048DF71C0FEA69C22A2F62011604226B040F9CF3C2AC30201B760403E8000FF99E6862020A9820042DE8000DB9CF78621A0EF92E0425E8000BF6EB08224298B62204AEC3032893585AA348A01134049292155C827E84F91122FFF60423B298F984DC389BA231527804201D8F283CBF1DE23798C83604D0C1322896693869D9D6F1EC0496C11BF9B292DE9ABF80093004558D1BFFE1F35C96B6076AC404586B33FDFFEFA6CCA4D5605C0415264BACD0F3CAA9B43FEDD0046A4256BEBCB5EC540105318C0458195AEFD7A27F64C20B357E042B375EACE7536ECC995F80800423515A9FE4AB7CA705198CD4043C90566FB9CB0A5600B840180490B1525EE9E69B95C36BBDB804D3774FFB9FD9282498310ED804AEF263C886D4E9B84E415640041E3A18F38F484879D5BF07A804F8594FC5895DF09356115C2804625D1C1F527472253F28538004D3D2FFBEE3A72383DD714F1A04489A2CABD3132A89B60448B122ACB38B5224C200B2C80448E727ADA1921A295B48328E04485D2AABAB656BAF390EDAB20495D232BDE1B0CBCC2AAA082404A6CA3AA9B1337BB505816A240448CA3F0E708BD35DDE02131C04A6E742BDA00C61EA4160A3B204A6614B77BE16AC3AEAF690A00448405297B77F82BD3D8841DA04D41056ABBCE964F173EE0C660442CE5AABE7F2D24B23356270045BFC5BAFD5A3343D5212549204D61060EEDA7AAFF4E789C16004D61065EEE59FAFC1798A76300496106AADD55A8EA63D92EB5E049610669BEC9D6BA3261534AC048F37666EA79E9E5E4A123AE804B0FC629BA78E1F3AAA0718D004A6DF655EA204757548510AA004A63D5CAD744E29D2BCAA176804A6085A6A7B56645A3B5FACDA04ABDF51357E8FAB3CF6B738E604A66133F30B1A85BF8C828D4429CE77FD4E7EBA109211AA73BA019DD09E73F213F908450010C1E7F8019987E67C000E802028140A34190CC6031017E73B7FD5CCFFFF338C41018EAF2D07F805002FD4CDBF9E613986350E8FFF8B13C6221CC1D34F62730F7FF888241E0CC5B0BF271F81C3E46A50907E3F167FFC459710E7C41815D0F05F06B21F76314F53D7FFF8FDC786B939F27203078C79E4F0C258FFFFFFCBD0001FF1FFC246E51FFFD9FFFF338C40B17C33F0E5FC12803B320197E8844A35769FCFABBA744EA755FFFF2A2DDBB2D35F46475B919188CBFD674F5A29E3C5C4C68E162A0A083389A0A5CC42144E53BC6C8E60E008000A08460B9AA77AA02000510000AA0100012AA020003200;
在一个可能的实施方式中,实施例1中的步骤105是通过下述步骤617至步骤622实现的;
步骤617:云音箱从接收到的播报通知中获取通知数据,根据通知数据中的通知标识判断当前获取到的通知数据的类型,如为模板编号类型的通知数据,执行步骤618,如为数字字符串类型的通知数据,执行步骤619,如为音频数据类型的通知数据,执行步骤620;
例如:云音箱从播报通知中获取的通知数据具体为:AA0326992321414D520A04FF2833F069FC31FF80008000041718833F241593B0C5E1190E04CA8B7B08A871CAD373C5A356041F30540DC654D40C9F07F71E042498193DC94705C410A92D6004D4DC4B7DF3153B326D8FE8C0045A42000FD6A3A80668E28CCE0425BD000EF19FECCCA1102004044714040FFE972B35402A39140471C009DEE0491A1B318864C404B02A23037E30BBC24A084A68042ACA6B00F9B9E54064BFE446043EDF080FB03BA8CCC880A8DA042578040EF2C762ACC2DB94CC043E9C040DE07A195524819748043E61081DD05619BD0422353004D4080DAEBFC8EBA8E3381E4804A6DF15E99BD395A4C2E9308204A60816AEDA8CE84AA922040A04A6611B6CC6795A334144052404A67C1E67E8D66E3BC236A58E0448B11D9BA8F06FBBC68458260448151AADC8FDCF3C2B35EC2A0471CD1EADD8E1BE0CB7A61B4804B0D41EAFDFEA43EDDB0ABC5E041ECA22AEC8FBDF3AB8D00EEA042AC42AAFD9E2542E90921866042ACA2A9FD75736C3B1544A8C0495E726AEAA08D4287E105B880471F5269EE048E9B48D4D2822046176230EECC38960475E1F70044BAE20CF8F738221106041A2040403B01EFF22228754AE4970044DBFC7BDFCCB18CFD89628200473C5E11CF883BF34C2C8A120048DF71C0FEA69C22A2F62011604226B040F9CF3C2AC30201B760403E8000FF99E6862020A9820042DE8000DB9CF78621A0EF92E0425E8000BF6EB08224298B62204AEC3032893585AA348A01134049292155C827E84F91122FFF60423B298F984DC389BA231527804201D8F283CBF1DE23798C83604D0C1322896693869D9D6F1EC0496C11BF9B292DE9ABF80093004558D1BFFE1F35C96B6076AC404586B33FDFFEFA6CCA4D5605C0415264BACD0F3CAA9B43FEDD0046A4256BEBCB5EC540105318C0458195AEFD7A27F64C20B357E042B375EACE7536ECC995F80800423515A9FE4AB7CA705198CD4043C90566FB9CB0A5600B840180490B1525EE9E69B95C36BBDB804D3774FFB9FD9282498310ED804AEF263C886D4E9B84E415640041E3A18F38F484879D5BF07A804F8594FC5895DF09356115C2804625D1C1F527472253F28538004D3D2FFBEE3A72383DD714F1A04489A2CABD3132A89B60448B122ACB38B5224C200B2C80448E727ADA1921A295B48328E04485D2AABAB656BAF390EDAB20495D232BDE1B0CBCC2AAA082404A6CA3AA9B1337BB505816A240448CA3F0E708BD35DDE02131C04A6E742BDA00C61EA4160A3B204A6614B77BE16AC3AEAF690A00448405297B77F82BD3D8841DA04D41056ABBCE964F173EE0C660442CE5AABE7F2D24B23356270045BFC5BAFD5A3343D5212549204D61060EEDA7AAFF4E789C16004D61065EEE59FAFC1798A76300496106AADD55A8EA63D92EB5E049610669BEC9D6BA3261534AC048F37666EA79E9E5E4A123AE804B0FC629BA78E1F3AAA0718D004A6DF655EA204757548510AA004A63D5CAD744E29D2BCAA176804A6085A6A7B56645A3B5FACDA04ABDF51357E8FAB3CF6B738E604A66133F30B1A85BF8C828D4429CE77FD4E7EBA109211AA73BA019DD09E73F213F908450010C1E7F8019987E67C000E802028140A34190CC6031017E73B7FD5CCFFFF338C41018EAF2D07F805002FD4CDBF9E613986350E8FFF8B13C6221CC1D34F62730F7FF888241E0CC5B0BF271F81C3E46A50907E3F167FFC459710E7C41815D0F05F06B21F76314F53D7FFF8FDC786B939F27203078C79E4F0C258FFFFFFCBD0001FF1FFC246E51FFFD9FFFF338C40B17C33F0E5FC12803B320197E8844A35769FCFABBA744EA755FFFF2A2DDBB2D35F46475B919188CBFD674F5A29E3C5C4C68E162A0A083389A0A5CC42144E53BC6C8E60E008000A08460B9AA77,根据通知数据中的音频数据通知标识AA03判断当前获取到的通知数据的类型为音频数据,执行步骤620;
例如:云音箱从播报通知中获取的通知数据具体为:AA02000510000,根据通知数据中的字符串通知标识AA02判断当前获取到的通知数据的类型为数字字符串,执行步骤619;
例如:云音箱从播报通知中获取的通知数据具体为:AA0100012,根据通知数据中的模板编号通知标识AA01判断当前获取到的通知数据的类型为模板编号,执行步骤618;
可选地,本实施例中,播报请求中还包括云音箱的设备序列号;
步骤616具体为:云服务器按照各通知数据中的待组织数据对应的索引顺次拼接各通知数据得到播报通知,根据云音箱的设备序列号获取保存的设备密钥,使用保存的设备密钥对播报通知进行加密处理得到第二加密数据,将第二加密数据发送给云音箱;
步骤617具体为:云音箱接收云服务器发送的第二加密数据,使用保存的设备密钥对第二加密数据进行解密处理得到播报通知,从接收到的播报通知中获取通知数据,根据通知数据中的通知标识判断当前获取到的通知数据的类型,如为模板编号类型的通知数据,执行步骤618,如为字符串类型的通知数据,执行步骤619,如为音频数据类型的通知数据,执行步骤620;
步骤618:云音箱从模板编号类型的通知数据中获取字符串模板的编号,获取与字符串模板的编号对应的预置的音频模板并保存,执行步骤621;
例如:云音箱从AA0100012中获取字符串模板的编号2,获取与2对应的预置的音频模板并保存,执行步骤621;
步骤619:云音箱从字符串类型的通知数据中获取不需要处理的字符串,获取与不需要处理的字符串对应的预置的音频模板并保存,执行步骤621;
例如:云音箱从AA02000510000中获取不需要处理的字符串10000,获取与10000对应的预置的音频模板并保存,执行步骤621;
可选地,本实施例中,获取与所述不需要处理的字符串对应的预置的音频模板具体为:
步骤619-1:云音箱从不需要处理的字符串中获取预设标识和该预设标识之前的数字字符串,按照对数字字符串的播报模式获取数字字符串对应的音频模板;
步骤619-2:云音箱获取预设标识对应的音频模板;
步骤619-3:云音箱将数字字符串对应的音频模板和预设标识对应的音频模板顺次拼接得到不需要处理的字符串对应的音频模板。
优选地,本实施例中,云音箱按照保留小数点后两位的播报方式播报数字字符串;
可选地,步骤619-1中,按照对数字字符串的播报模式获取数字字符串对应的音频模板具体包括:
步骤D1:云音箱从不需要处理的字符串中获取数字类型的字符串,判断数字类型的字符串是否大于等于100000000或等于0,如果是,报错结束,否则,执行步骤D2;
步骤D2:云音箱判断数字类型的字符串的长度是否小于10位,如果是,将数字类型的字符串的长度通过高位补零补充为10位;
步骤D3:云音箱从数字类型的字符串中获取前四位数字记为第一字符串,获取第五到第八位数字记为第二字符串,获取第九到第十位数字记为第三字符串;
步骤D4:云音箱确定第一字符串中有效数字的位数是否为零,如果是,执行步骤D7,否则,执行步骤D5;
步骤D5:云音箱按照整数字符串的播报格式获取第一字符串的有效数字以及所述有效数字对应的音频模板;
步骤D6:云音箱获取“万”对应的音频模板;
步骤D7:云音箱判断第二字符串中有效数字的位数是否为零,如果是,执行步骤D9,否则,执行步骤D8;
步骤D8:云音箱按照整数字符串的播报格式获取第二字符串的有效数字以及所述有效数字对应的音频模板;
步骤D9:云音箱按照小数字符串的播报格式获取第三字符串的数字对应的音频模板;
可选地,本实施例中,步骤D4和步骤D5的处理过程参见步骤C1至步骤C14:
步骤C1:云音箱判断第一字符串的第一位是否为零,如果是,执行步骤C2,否则,执行步骤C5;
步骤C2:云音箱判断第一字符串的第二位是否为零,如果是,执行步骤C3,否则,执行步骤C10;
步骤C3:云音箱判断第一字符串的第三位是否为零,如果是,执行步骤C4,否则,执行步骤C13;
步骤C4:云音箱判断第一字符串的第四位是否为零,如果是,结束,否则,执行步骤C14;
步骤C5:云音箱获取第一字符串中第一个数字及“千”对应的音频模板,判断第一字符串中第二个数字是否为零,如果是,获取零对应的音频模板,执行步骤C6,否则,获取第一字符串中第二个数字及“百”对应的音频模板,执行步骤C6;
步骤C6:云音箱判断第一字符串中第三个数字是否为零,如果是,执行步骤C7,否则,获取第一字符串中第三个数字及“十”对应的音频模板,执行步骤C8;
步骤C7:云音箱判断第一字符串中第二个数字是否为零,如果是,执行步骤C8,否则,获取零对应的音频模板,执行步骤C8;
步骤C8:云音箱判断第一字符串中第四个数字是否为零,如果是,执行步骤C9,否则,获取第一字符串中第四个数字对应的音频模板,执行步骤D6;
步骤C9:云音箱判断第一字符串中第三个数字是否为零,如果是,执行步骤D6,否则,获取零对应的音频模板,执行步骤D6;
步骤C10:云音箱获取第一字符串中第二个数字及“百”对应的音频模板,判断第一字符串中第三个数字是否为零,如果是,获取零对应的音频模板,执行步骤C11,否则,获取第一字符串中第三个数字及“十”对应的音频模板,执行步骤C11;
步骤C11:云音箱判断第一字符串中第四个数字是否为零,如果是,执行步骤C12,否则,获取第一字符串中第四个数字对应的音频模板,执行步骤D6;
步骤C12:云音箱判断第一字符串中第三个数字是否为零,如果是,执行步骤D6,否则,获取第一字符串中第四个数字对应的音频模板,执行步骤D6;
步骤C13:云音箱获取第一字符串中第三个数字及“十”对应的音频模板,判断第一字符串中第四个数字是否为零,如果是,执行步骤D6,否则,获取第一字符串中第四个数字对应的音频模板,执行步骤D6;
步骤C14:云音箱获取第一字符串中第四个数字对应的音频模板,执行步骤D6;
可选地,本实施例中,步骤D7和步骤D8的处理过程参见步骤C1至步骤C14,在此不再赘述;
可选地,本实施例中,步骤D9的处理过程参见步骤F1至步骤F3;
步骤F1:云音箱判断第一字符串或第二字符串中是否存在有效数字,如果是,执行步骤F2,否则,获取零对应的音频模板,执行步骤F2;
步骤F2: 云音箱判断第三字符串中的两个数字是否均为0,如果是,执行步骤620-2,否则,执行步骤F3;
步骤F3:云音箱获取“.”和第三字符串中的第一个字符对应的音频模板,判断第三字符串中的第二个字符是否为零,如果是,执行步骤619-2,否则,获取第三字符串中的第二个字符对应的音频模板,执行步骤619-2。
可选地,本实施例中,云音箱还可以逆序对数字字符串进行处理。
例如,本实施例中,云音箱播报的待播报字音频数据具体为:张三水果店收款一百元优惠两元。
步骤620:云音箱从音频数据类型的通知数据中获取音频数据并保存,执行步骤621;
步骤621:云音箱判断播报通知中是否还存在未获取过的通知数据,如果是,返回步骤617,否则,执行步骤622;
步骤622:云音箱按照获取通知数据的顺序依次排列获取到的音频模板和接收到的音频数据得到待播报音频数据,对待播报音频数据进行语音播报,向云服务器返回播报结果。
本发明提供的一种基于云服务器实现字符串转音频的方法,减少了云服务器与云音箱之间的数据传输量,减少了调用语音合成服务器合成音频数据的次数,从而减少了云服务器与语音合成服务器之间的数据传输量,提高了播报音质,提升了用户体验。
实施例4
本发明实施例4提供了一种基于云服务器实现字符串转音频的系统,如图7所示,该系统包括云服务器70和云音箱80;
包括云服务器70和云音箱80;
云服务器70包括:接收获取模块701、第一解析模块702、保存模块703、匹配模块704、调用模块705和生成发送模块706;
接收获取模块701,用于接收用户服务器发送的播报请求,从播报请求中获取待播报字符串数据;
第一解析模块702,用于按照待播报字符串数据的数据格式对待播报字符串数据进行解析,解析结果中包含需要处理的字符串,判断解析结果中是否还包含不需要处理的字符串,如果是,触发保存模块703,否则,触发匹配模块704;
保存模块,用于将不需要处理的字符串保存为待组织数据,触发匹配模块704;
匹配模块704,用于将解析结果中的每个需要处理的字符串分别与数据库中保存的字符串模板进行匹配,将匹配到的字符串模板的编号保存为待组织数据,若均匹配到模板则触发生成发送模块706,若存在未匹配到字符串模板的需要处理的字符串,触发调用模块705;
调用模块705,用于调用语音合成服务器得到未匹配到字符串模板的需要处理的字符串对应的音频数据,将音频数据保存为待组织数据,触发生成发送模块706;
生成发送模块706,用于根据匹配模块704或调用模块705保存的待组织数据生成播报通知,将播报通知发送给云音箱80;
云音箱80包括:第二解析模块801、第一获取模块802、第二获取模块803、第三获取模块804和组织播报模块805;
第二解析模块801,用于接收播报通知并进行解析;
第一获取模块802,用于当第二解析模块801解析的播报通知中包含字符串模板的编号时,获取与字符串模板的编号对应的预置的音频模板保存为待组织音频;
第二获取模块803,用于当第二解析模块801解析的播报通知中包含音频数据时,获取播报通知中的音频数据保存为待组织音频;
第三获取模块804,用于当第二解析模块801解析的播报通知中包含不需要处理的字符串时,获取不需要处理的字符串对应的预置的音频模板保存为待组织音频;
组织播报模块805,用于组织第一获取模块802或第二获取模块803或第三获取模块804保存的待组织音频得到待播报音频数据并播报。
可选地,本实施例中,接收获取模块701接收到的播报请求中还包括云音箱80的设备标识,云服务器70还包括:第一判断模块和第一组织模块;
第一判断模块,用于根据云音箱80的设备标识判断云音箱80的设备类型,如判断云音箱80的设备类型为TTS设备,触发第一组织模块,如判断云音箱80的设备类型为非TTS设备,触发第一解析模块702;
第一组织模块,用于根据待播报字符串数据组织播报通知,向云音箱80发送播报通知;
云音箱80还包括:解析转换播报模块;
解析转换播报模块,用于接收云服务器70发送的播报通知,解析播报通知得到待播报字符串数据,将待播报字符串数据转换为待播报音频数据,对待播报音频数据进行语音播报,向云服务器70返回播报结果。
可选地,本实施例中,第一解析模块702具体包括:第一判断单元、第一截取单元、第二截取单元、第二判断单元、第一作为单元和第二作为单元;
第一判断单元,用于判断待播报字符串数据中是否存在预设标识,如果是,触发第一截取单元,否则,触发第二作为单元;
第一截取单元,用于从待播报字符串数据的起始位置开始获取预设标识,并将获取到的预设标识记为当前预设标识,截取当前预设标识之前的字符串并将截取的字符串与当前预设标识顺次拼接得到当前待拆分字符串;
第二截取单元,用于从当前待拆分字符串中截取与预设标识相邻的数字字符串,将截取到的数字字符串记为当前不需要处理的字符串,将当前不需要处理的字符串保存为数字字符串类型的待组织数据,将当前待拆分字符串中数字字符串之前的字符串作为当前需要处理的字符串;
第二判断单元,用于从待播报字符串数据中截取当前待拆分字符串后,判断待播报字符串数据中是否还存在字符串,如果是,触发第一作为单元,否则,触发第二作为单元;
第一作为单元,用于将截取当前待拆分字符串后待播报字符串数据中剩余的字符串作为新的待播报字符串数据,触发第一截取单元;
第二作为单元,用于将待播报字符串数据作为需要处理的字符串。
可选地,本实施例中,匹配模块704具体包括:第一分配单元、第一匹配单元和第一组织单元;调用模块705具体包括:第一调用单元和第三判断单元;
第一分配单元,用于按照需要处理的字符串和不需要处理的字符串在待播报字符串数据中的位置为需要处理的字符串和不需要处理的字符串依次分配索引;
第一匹配单元,用于获取需要处理的字符串,将当前获取到的需要处理的字符串与数据库中保存的字符串模板进行匹配,判断数据库中是否存在与当前获取到的需要处理的字符串匹配的字符串模板,如果是,触发第一组织单元,否则,触发第一调用单元;
第一组织单元,用于获取与当前获取到的需要处理的字符串匹配的字符串模板的编号,将获取到的字符串模板的编号保存为模板编号类型的待组织数据,将模板编号类型的待组织数据与当前获取到的需要处理的字符串的索引对应保存,触发第三判断单元;
第一调用单元,用于调用语音合成服务器将当前获取到的需要处理的字符串合成音频数据,将合成的音频数据保存为音频数据类型的待组织数据,将音频数据类型的待组织数据与当前获取到的需要处理的字符串的索引对应保存,触发第三判断单元;
第三判断单元,用于判断是否还存在未获取过的需要处理的字符串,如果是,触发第一匹配单元,否则,触发生成发送模块706。
可选地,本实施例中,生成发送模块706具体包括:获取生成发送单元和第二组织单元;
获取生成发送单元,用于获取保存的待组织数据,判断获取到的待组织数据的类型,如为模板编号类型,则根据保存的模板编号通知标识和模板编号类型的待组织数据生成模板编号类型的通知数据,如为音频数据类型,则根据保存的音频数据通知标识和音频数据类型的待组织数据生成音频数据类型的通知数据,如为数字字符串类型,则根据保存的字符串通知标识和数字字符串类型的待组织数据生成数字字符串类型的通知数据;
第二组织单元,用于按照通知数据中的待组织数据对应的索引顺次拼接通知数据得到播报通知,将播报通知发送给云音箱80。
可选地,本实施例中,第二解析模块801,具体用于从接收到的播报通知中获取通知数据,根据通知数据中的通知标识判断当前获取到的通知数据的类型,如为模板编号类型的通知数据,触发第一获取模块802,如为字符串类型的通知数据,触发第二获取模块803,如为音频数据类型的通知数据,触发第三获取模块804;
第一获取模块802,具体用于从模板编号类型的通知数据中获取字符串模板的编号,获取与字符串模板的编号对应的预置的音频模板并保存,触发组织播报模块805;
第二获取模块803,具体用于从字符串类型的通知数据中获取不需要处理的字符串,获取与不需要处理的字符串对应的预置的音频模板并保存,触发组织播报模块805;
第三获取模块804,具体用于从音频数据类型的通知数据中获取音频数据并保存,触发组织播报模块805;
组织播报模块805,具体用于判断播报通知中是否还存在未获取过的通知数据,如果是,触发第二解析模块801,否则,按照获取通知数据的顺序依次排列获取到的音频模板和接收到的音频数据得到待播报音频数据,对待播报音频数据进行语音播报,向云服务器70返回播报结果。
可选地,本实施例中,字符串模板包括标准字符串模板、用户自定义字符串模板和临时字符串模板;匹配模块704具体包括:第二匹配单元、第三匹配单元和第四匹配单元;
第二匹配单元,用于将需要处理的字符串与数据库中保存的标准字符串模板进行匹配,如匹配到标准字符串模板,则将匹配到的标准字符串模板的编号保存为标准模板编号类型的待组织数据,并将标准模板编号类型的待组织数据与需要处理的字符串的索引对应保存,如未匹配到标准字符串模板,则触发第三匹配单元;
第三匹配单元,用于将未匹配到标准字符串模板的需要处理的字符串与数据库中保存的用户自定义字符串模板进行匹配,如匹配到用户自定义字符串模板,则将匹配到的用户自定义字符串模板的编号保存为用户自定义模板编号类型的待组织数据,并将用户自定义模板编号类型的待组织数据与匹配到用户自定义字符串模板的需要处理的字符串的索引对应保存,如未匹配到用户自定义字符串模板,则触发第四匹配单元;
第四匹配单元,用于将未匹配到用户自定义字符串模板的需要处理的字符串与数据库中保存的临时字符串模板进行匹配,如匹配到临时字符串模板,则将匹配到临时字符串模板对应的音频数据保存为音频数据类型的待组织数据,并将音频数据类型的待组织数据与匹配到临时字符串模板的需要处理的字符串的索引对应保存。
可选地,本实施例中,匹配模块704还包括:更新发送单元和获取发送单元;
更新发送单元,用于更新与需要处理的字符串匹配的临时字符串模板的次数,如更新后的次数达到预设值,将临时字符串模板作为标准字符串模板并保存到数据库中,向云音箱80推送包含标准字符串模板的编号的更新模板通知;
获取发送单元,用于根据云音箱80发送的获取音频数据请求获取与标准字符串模板的编号对应的音频数据,将获取到的音频数据与标准字符串模板的编号发送给云音箱80;
云音箱80还包括:解析发送模块;
解析发送模块,用于接收更新模板通知,解析更新模板通知得到标准字符串模板的编号,根据标准字符串模板的编号向云服务器70发送获取音频数据请求。
可选地,本实施例中,云服务器70还包括:设置模块;
设置模块,用于将将未匹配到字符串模板的需要处理的字符串设置为临时字符串模板,根据临时字符串模板合成音频数据并与临时字符串模板对应保存,设置临时字符串模板的次数为初始值。
可选地,本实施例中,该系统还包括:用户服务器,用户服务器包括:第一发送模块和第一接收模块;
第一发送模块,用于向云服务器70发送注册请求;
第一接收模块,用于接收云服务器70发送的用户标识和用户密钥并保存;
云服务器70还包括:第一接收发送模块;
第一接收发送模块,用于接收用户服务器发送的注册请求,生成用户标识和用户密钥并保存,向用户服务器发送用户标识和用户密钥。
可选地,本实施例中,用户服务器包括:第二发送模块和第二接收模块;
第二发送模块,用于向云服务器70发送绑定设备请求;绑定设备请求包含待绑定的云音箱80的设备序列号和用户标识;
第二接收模块,用于接收云服务器70发送的绑定响应,完成设备绑定;
云服务器70还包括:第二接收发送模块;
第二接收发送模块,用于接收用户服务器发送的绑定设备请求,解析绑定设备请求得到待绑定的云音箱80的设备序列号和用户标识,将云音箱80的设备序列号和用户标识进行绑定,向用户服务器发送绑定响应。
可选地,本实施例中,云音箱80还包括:获取签名发送模块、保存生成发送模块706和建立连接模块;
获取签名发送模块,用于获取预存的设备序列号、系统版本信息和版本密钥,生成第一随机数,使用版本密钥对设备序列号、系统版本信息和第一随机数进行签名得到第一签名数据,根据设备序列号、系统版本信息、第一随机数和第一签名数据组织协商设备密钥请求,向云服务器70发送协商设备密钥请求;
保存生成发送模块706,用于接收并保存云服务器70发送的设备密钥,生成设备名和设备密码,根据设备序列号、设备名和设备密码组织登录请求,向云服务器70发送登录请求;
建立连接模块,用于接收云服务器70发送的登录成功响应,与云服务器70建立长连接;
云服务器70还包括:解析验签模块、生成保存发送模块和解析校验模块;
解析验签模块,用于接收云音箱80发送的协商设备密钥请求,解析协商设备密钥请求得到设备序列号、系统版本信息、第一随机数和第一签名数据,使用预存的版本密钥对第一签名数据进行验签,当验签通过时,触发生成保存发送模块;
生成保存发送模块,用于根据设备序列号和系统版本信息生成设备密钥,将设备密钥与设备序列号对应保存,向云音箱80发送设备密钥;
解析校验模块,用于接收云音箱80发送的登录请求,解析登录请求得到设备序列号、设备名和设备密码,根据设备序列号查找设备序列号对应的设备密钥,如查找到则根据设备序列号、设备名和设备密钥对设备密码进行校验,当校验通过时,向云音箱80发送登录成功响应。
本发明提供的一种基于云服务器实现字符串转音频的系统,减少了云服务器与云音箱之间的数据传输量,减少了调用语音合成服务器合成音频数据的次数,从而减少了云服务器与语音合成服务器之间的数据传输量,提高了播报音质,提升了用户体验。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (24)
1.一种基于云服务器实现字符串转音频的方法,其特征在于,包括如下步骤:
步骤101:云服务器接收用户服务器发送的播报请求,从所述播报请求中获取待播报字符串数据;
步骤102:所述云服务器按照所述待播报字符串数据的数据格式对所述待播报字符串数据进行解析,解析结果中包含需要处理的字符串,判断所述解析结果中是否还包含不需要处理的字符串,如果是,将所述不需要处理的字符串保存为待组织数据,执行步骤103,否则,直接执行步骤103;
步骤103:所述云服务器将解析结果中的每个需要处理的字符串分别与数据库中保存的字符串模板进行匹配,将匹配到的字符串模板的编号保存为待组织数据,若均匹配到模板则执行步骤104,若存在未匹配到字符串模板的需要处理的字符串则调用语音合成服务器得到未匹配到字符串模板的需要处理的字符串对应的音频数据,将所述音频数据保存为待组织数据,执行步骤104;
步骤104:所述云服务器根据保存的待组织数据生成播报通知,将所述播报通知发送给云音箱;
步骤105:所述云音箱解析接收到的播报通知,若所述播报通知中包含字符串模板的编号,则获取与所述字符串模板的编号对应的预置的音频模板保存为待组织音频,若所述播报通知中包含音频数据,则获取所述播报通知中的音频数据并保存为待组织音频,若所述播报通知中包含不需要处理的字符串,则获取所述不需要处理的字符串对应的预置的音频模板并保存为待组织音频,组织所述待组织音频得到待播报音频数据并播报。
2.如权利要求1所述的方法,其特征在于,所述步骤101还包括,从所述播报请求中获取云音箱的设备标识,所述步骤102之前还包括:
步骤a1:所述云服务器根据所述云音箱的设备标识判断所述云音箱的设备类型,如所述云音箱的设备类型为TTS设备,执行步骤a2,如所述云音箱的设备类型为非TTS设备,执行步骤102;
步骤a2:所述云服务器根据所述待播报字符串数据组织播报通知,向所述云音箱发送所述播报通知;
步骤a3:所述云音箱接收所述云服务器发送的播报通知,解析所述播报通知得到待播报字符串数据,将所述待播报字符串数据转换为待播报音频数据,对所述待播报音频数据进行语音播报,向所述云服务器返回播报结果。
3.如权利要求1所述的方法,其特征在于,所述步骤102具体包括:
步骤b0:所述云服务器判断所述待播报字符串数据中是否存在预设标识,如果是,执行步骤b1,否则,执行步骤b5;
步骤b1:所述云服务器从所述待播报字符串数据的起始位置开始获取预设标识,并将获取到的预设标识记为当前预设标识,截取当前预设标识之前的字符串并将截取的所述字符串与当前预设标识顺次拼接得到当前待拆分字符串;
步骤b2:所述云服务器从当前待拆分字符串中截取与预设标识相邻的数字字符串,将截取到的数字字符串记为当前不需要处理的字符串,将当前不需要处理的字符串保存为数字字符串类型的待组织数据,将当前待拆分字符串中的数字字符串之前的字符串作为当前需要处理的字符串;
步骤b3:所述云服务器判断从所述待播报字符串数据中截取所述当前待拆分字符串后所述待播报字符串数据中是否还存在字符串,如果是,执行步骤b4,否则,执行步骤b5;
步骤b4:所述云服务器将截取当前待拆分字符串后的所述待播报字符串数据中剩余的字符串作为新的待播报字符串数据,返回步骤b1;
步骤b5:所述云服务器将所述待播报字符串数据作为需要处理的字符串。
4.如权利要求1所述的方法,其特征在于,所述步骤103具体包括:
步骤c0: 所述云服务器按照所述需要处理的字符串和所述不需要处理的字符串在所述待播报字符串数据中的位置为所述需要处理的字符串和所述不需要处理的字符串依次分配索引;
步骤c1:所述云服务器获取需要处理的字符串,将当前获取到的需要处理的字符串与数据库中保存的字符串模板进行匹配,判断所述数据库中是否存在与当前获取到的需要处理的字符串匹配的字符串模板,如果是,执行步骤c2,否则,执行步骤c3;
步骤c2:所述云服务器获取与当前获取到的需要处理的字符串匹配的字符串模板的编号,将获取到的字符串模板的编号保存为模板编号类型的待组织数据,将模板编号类型的待组织数据与当前获取到的需要处理的字符串的索引对应保存,执行步骤c4;
步骤c3:所述云服务器调用语音合成服务器将当前获取到的需要处理的字符串合成音频数据,将合成的音频数据保存为音频数据类型的待组织数据,将音频数据类型的待组织数据与当前获取到的需要处理的字符串的索引对应保存,执行步骤c4;
步骤c4:所述云服务器判断是否还存在未获取过的需要处理的字符串,如果是,返回步骤c1,否则,执行步骤104。
5.如权利要求4所述的方法,其特征在于,所述步骤104具体包括:
步骤L1:所述云服务器获取保存的待组织数据,判断获取到的待组织数据的类型,如为模板编号类型,则根据保存的模板编号通知标识和所述模板编号类型的待组织数据生成模板编号类型的通知数据,如为音频数据类型,则根据保存的音频数据通知标识和所述音频数据类型的待组织数据生成音频数据类型的通知数据,如为数字字符串类型,则根据保存的字符串通知标识和所述数字字符串类型的待组织数据生成数字字符串类型的通知数据;
步骤L2:所述云服务器按照所述通知数据中的待组织数据对应的索引顺次拼接所述通知数据得到播报通知,将所述播报通知发送给所述云音箱。
6.如权利要求5所述的方法,其特征在于,所述步骤105具体包括:
步骤m1:所述云音箱从接收到的播报通知中获取通知数据,根据所述通知数据中的通知标识判断当前获取到的通知数据的类型,如为模板编号类型的通知数据,执行步骤m2,如为字符串类型的通知数据,执行步骤m3,如为音频数据类型的通知数据,执行步骤m4;
步骤m2:所述云音箱从模板编号类型的通知数据中获取字符串模板的编号,获取与所述字符串模板的编号对应的预置的音频模板并保存,执行步骤m5;
步骤m3:所述云音箱从字符串类型的通知数据中获取不需要处理的字符串,获取与所述不需要处理的字符串对应的预置的音频模板并保存,执行步骤m5;
步骤m4:所述云音箱从音频数据类型的通知数据中获取音频数据并保存,执行步骤m5;
步骤m5:所述云音箱判断播报通知中是否还存在未获取过的通知数据,如果是,返回步骤m1,否则,执行步骤m6;
步骤m6:所述云音箱按照获取通知数据的顺序依次排列获取到的音频模板和接收到的音频数据得到待播报音频数据,对所述待播报音频数据进行语音播报,向所述云服务器返回播报结果。
7.如权利要求1所述的方法,其特征在于,所述步骤103中的所述字符串模板包括标准字符串模板、用户自定义字符串模板和临时字符串模板;所述步骤103中,所述云服务器将解析结果中的每个需要处理的字符串分别与数据库中保存的字符串模板进行匹配,将匹配到的字符串模板的编号保存为待组织数据具体包括:
步骤f1:所述云服务器将所述需要处理的字符串与数据库中保存的标准字符串模板进行匹配,如匹配到标准字符串模板,将匹配到的标准字符串模板的编号保存为标准模板编号类型的待组织数据,并将所述标准模板编号类型的待组织数据与所述需要处理的字符串的索引对应保存,如未匹配到标准字符串模板,执行步骤f2;
步骤f2:所述云服务器将未匹配到标准字符串模板的需要处理的字符串与数据库中保存的用户自定义字符串模板进行匹配,如匹配到用户自定义字符串模板,将匹配到的用户自定义字符串模板的编号保存为用户自定义模板编号类型的待组织数据,并将所述用户自定义模板编号类型的待组织数据与所述匹配到用户自定义字符串模板的需要处理的字符串的索引对应保存,如未匹配到用户自定义字符串模板,执行步骤f3;
步骤f3:所述云服务器将未匹配到用户自定义字符串模板的需要处理的字符串与数据库中保存的临时字符串模板进行匹配,如匹配到临时字符串模板,将匹配到临时字符串模板对应的音频数据保存为音频数据类型的待组织数据,并将所述音频数据类型的待组织数据与所述匹配到临时字符串模板的需要处理的字符串的索引对应保存。
8.如权利要求7所述的方法,其特征在于,所述步骤f3之后还包括:
步骤r1:所述云服务器更新与所述需要处理的字符串匹配的临时字符串模板的次数,如更新后的次数达到预设值,则将所述临时字符串模板作为标准字符串模板并保存到数据库中,向所述云音箱推送包含所述标准字符串模板的编号的更新模板通知;
步骤r2:所述云音箱接收所述更新模板通知,解析所述更新模板通知得到标准字符串模板的编号,根据所述标准字符串模板的编号向所述云服务器发送获取音频数据请求;
步骤r3:所述云服务器根据所述获取音频数据请求获取与所述标准字符串模板的编号对应的音频数据,将获取到的音频数据与所述标准字符串模板的编号发送给所述云音箱。
9.如权利要求1所述的方法,其特征在于,所述步骤103还包括:所述云服务器将所述将未匹配到字符串模板的需要处理的字符串设置为临时字符串模板,根据所述临时字符串模板合成音频数据并与所述临时字符串模板对应保存,设置所述临时字符串模板的次数为初始值。
10.如权利要求1所述的方法,其特征在于,所述方法还包括用户服务器向所述云服务器进行注册的过程,包括如下步骤:
步骤g1:所述用户服务器向所述云服务器发送注册请求;
步骤g2:所述云服务器接收所述用户服务器发送的注册请求,生成用户标识和用户密钥并保存,向所述用户服务器发送所述用户标识和所述用户密钥;
步骤g3:所述用户服务器接收所述云服务器发送的用户标识和用户密钥并保存。
11.如权利要求10所述的方法,其特征在于,所述方法还包括所述云音箱与所述云服务器进行绑定的过程,包括如下步骤:
步骤n1:用户服务器向所述云服务器发送绑定设备请求;所述绑定设备请求包含待绑定的云音箱的设备序列号和用户标识;
步骤n2:所述云服务器接收所述用户服务器发送的绑定设备请求,解析所述绑定设备请求得到待绑定的云音箱的设备序列号和用户标识,将所述云音箱的设备序列号和所述用户标识进行绑定,向所述用户服务器发送绑定响应;
步骤n3:所述用户服务器接收所述云服务器发送的绑定响应,完成设备绑定。
12.如权利要求1所述的方法,其特征在于,所述方法还包括所述云音箱与所述云服务器建立连接的过程,包括如下步骤:
步骤q1:所述云音箱获取预存的设备序列号、系统版本信息和版本密钥,生成第一随机数,使用所述版本密钥对所述设备序列号、所述系统版本信息和所述第一随机数进行签名得到第一签名数据,根据所述设备序列号、所述系统版本信息、所述第一随机数和所述第一签名数据组织协商设备密钥请求,向所述云服务器发送所述协商设备密钥请求;
步骤q2:所述云服务器接收所述云音箱发送的协商设备密钥请求,解析所述协商设备密钥请求得到设备序列号、系统版本信息、第一随机数和第一签名数据,使用预存的版本密钥对所述第一签名数据进行验签,当验签通过时,执行步骤q3;
步骤q3:所述云服务器根据所述设备序列号和所述系统版本信息生成设备密钥,将所述设备密钥与所述设备序列号对应保存,向所述云音箱发送所述设备密钥;
步骤q4:所述云音箱接收并保存所述云服务器发送的设备密钥,生成设备名和设备密码,根据所述设备序列号、所述设备名和所述设备密码组织登录请求,向所述云服务器发送所述登录请求;
步骤q5:所述云服务器接收所述云音箱发送的登录请求,解析所述登录请求得到设备序列号、设备名和设备密码,根据所述设备序列号查找所述设备序列号对应的设备密钥,如查找到,则根据所述设备序列号、所述设备名和所述设备密钥对所述设备密码进行校验,当校验通过时,向所述云音箱发送登录成功响应;
步骤q6:所述云音箱接收所述云服务器发送的登录成功响应,与所述云服务器建立长连接。
13.一种基于云服务器实现字符串转音频的系统,其特征在于,包括云服务器和云音箱;
所述云服务器包括:接收获取模块、第一解析模块、保存模块、匹配模块、调用模块和生成发送模块;
所述接收获取模块,用于接收用户服务器发送的播报请求,从所述播报请求中获取待播报字符串数据;
所述第一解析模块,用于按照所述待播报字符串数据的数据格式对所述待播报字符串数据进行解析,解析结果中包含需要处理的字符串,判断所述解析结果中是否还包含不需要处理的字符串,如果是,触发所述保存模块,否则,触发所述匹配模块;
所述保存模块,用于将所述不需要处理的字符串保存为待组织数据,触发所述匹配模块;
所述匹配模块,用于将解析结果中的每个需要处理的字符串分别与数据库中保存的字符串模板进行匹配,将匹配到的字符串模板的编号保存为待组织数据,若均匹配到模板则触发所述生成发送模块,若存在未匹配到字符串模板的需要处理的字符串,触发所述调用模块;
所述调用模块,用于调用语音合成服务器得到未匹配到字符串模板的需要处理的字符串对应的音频数据,将所述音频数据保存为待组织数据,触发所述生成发送模块;
所述生成发送模块,用于根据所述匹配模块或所述调用模块保存的待组织数据生成播报通知,将所述播报通知发送给云音箱;
所述云音箱包括:第二解析模块、第一获取模块、第二获取模块、第三获取模块和组织播报模块;
所述第二解析模块,用于接收播报通知并进行解析;
所述第一获取模块,用于当所述第二解析模块解析的播报通知中包含字符串模板的编号时,获取与所述字符串模板的编号对应的预置的音频模板保存为待组织音频;
所述第二获取模块,用于当所述第二解析模块解析的播报通知中包含音频数据时,获取所述播报通知中的音频数据保存为待组织音频;
所述第三获取模块,用于当所述第二解析模块解析的播报通知中包含不需要处理的字符串时,获取所述不需要处理的字符串对应的预置的音频模板保存为待组织音频;
所述组织播报模块,用于组织所述第一获取模块或所述第二获取模块或所述第三获取模块保存的待组织音频得到待播报音频数据并播报。
14.如权利要求13所述的系统,其特征在于,所述接收获取模块接收到的播报请求中还包括云音箱的设备标识,所述云服务器还包括:第一判断模块和第一组织模块;
所述第一判断模块,用于根据所述云音箱的设备标识判断所述云音箱的设备类型,如判断所述云音箱的设备类型为TTS设备,触发所述第一组织模块,如判断所述云音箱的设备类型为非TTS设备,触发所述第一解析模块;
所述第一组织模块,用于根据所述待播报字符串数据组织播报通知,向所述云音箱发送所述播报通知;
所述云音箱还包括:解析转换播报模块;
所述解析转换播报模块,用于接收所述云服务器发送的播报通知,解析所述播报通知得到待播报字符串数据,将所述待播报字符串数据转换为待播报音频数据,对所述待播报音频数据进行语音播报,向所述云服务器返回播报结果。
15.如权利要求13所述的系统,其特征在于,所述第一解析模块具体包括:第一判断单元、第一截取单元、第二截取单元、第二判断单元、第一作为单元和第二作为单元;
所述第一判断单元,用于判断所述待播报字符串数据中是否存在预设标识,如果是,触发所述第一截取单元,否则,触发所述第二作为单元;
所述第一截取单元,用于从待播报字符串数据的起始位置开始获取预设标识,并将获取到的预设标识记为当前预设标识,截取当前预设标识之前的字符串并将截取的所述字符串与当前预设标识顺次拼接得到当前待拆分字符串;
所述第二截取单元,用于从当前待拆分字符串中截取与预设标识相邻的数字字符串,将截取到的数字字符串记为当前不需要处理的字符串,将当前不需要处理的字符串保存为数字字符串类型的待组织数据,将当前待拆分字符串中数字字符串之前的字符串作为当前需要处理的字符串;
所述第二判断单元,用于从所述待播报字符串数据中截取所述当前待拆分字符串后,判断所述待播报字符串数据中是否还存在字符串,如果是,触发所述第一作为单元,否则,触发所述第二作为单元;
所述第一作为单元,用于将截取当前待拆分字符串后所述待播报字符串数据中剩余的字符串作为新的待播报字符串数据,触发所述第一截取单元;
所述第二作为单元,用于将所述待播报字符串数据作为需要处理的字符串。
16.如权利要求13所述的系统,其特征在于,所述匹配模块具体包括:第一分配单元、第一匹配单元和第一组织单元;所述调用模块具体包括:第一调用单元和第三判断单元;
所述第一分配单元,用于按照所述需要处理的字符串和所述不需要处理的字符串在所述待播报字符串数据中的位置为所述需要处理的字符串和所述不需要处理的字符串依次分配索引;
所述第一匹配单元,用于获取需要处理的字符串,将当前获取到的需要处理的字符串与数据库中保存的字符串模板进行匹配,判断数据库中是否存在与当前获取到的需要处理的字符串匹配的字符串模板,如果是,触发所述第一组织单元,否则,触发所述第一调用单元;
所述第一组织单元,用于获取与当前获取到的需要处理的字符串匹配的字符串模板的编号,将获取到的字符串模板的编号保存为模板编号类型的待组织数据,将模板编号类型的待组织数据与当前获取到的需要处理的字符串的索引对应保存,触发所述第三判断单元;
所述第一调用单元,用于调用语音合成服务器将当前获取到的需要处理的字符串合成音频数据,将合成的音频数据保存为音频数据类型的待组织数据,将音频数据类型的待组织数据与当前获取到的需要处理的字符串的索引对应保存,触发所述第三判断单元;
所述第三判断单元,用于判断是否还存在未获取过的需要处理的字符串,如果是,触发所述第一匹配单元,否则,触发所述生成发送模块。
17.如权利要求16所述的系统,其特征在于,所述生成发送模块具体包括:获取生成发送单元和第二组织单元;
所述获取生成发送单元,用于获取保存的待组织数据,判断获取到的待组织数据的类型,如为模板编号类型,则根据保存的模板编号通知标识和所述模板编号类型的待组织数据生成模板编号类型的通知数据,如为音频数据类型,则根据保存的音频数据通知标识和所述音频数据类型的待组织数据生成音频数据类型的通知数据,如为数字字符串类型,则根据保存的字符串通知标识和所述数字字符串类型的待组织数据生成数字字符串类型的通知数据;
所述第二组织单元,用于按照所述通知数据中的待组织数据对应的索引顺次拼接所述通知数据得到播报通知,将所述播报通知发送给所述云音箱。
18.如权利要求17所述的系统,其特征在于,所述第二解析模块,具体用于从接收到的播报通知中获取通知数据,根据所述通知数据中的通知标识判断当前获取到的通知数据的类型,如为模板编号类型的通知数据,触发所述第一获取模块,如为字符串类型的通知数据,触发所述第二获取模块,如为音频数据类型的通知数据,触发所述第三获取模块;
所述第一获取模块,具体用于从模板编号类型的通知数据中获取字符串模板的编号,获取与所述字符串模板的编号对应的预置的音频模板并保存,触发所述组织播报模块;
所述第二获取模块,具体用于从字符串类型的通知数据中获取不需要处理的字符串,获取与所述不需要处理的字符串对应的预置的音频模板并保存,触发所述组织播报模块;
所述第三获取模块,具体用于从音频数据类型的通知数据中获取音频数据并保存,触发所述组织播报模块;
所述组织播报模块,具体用于判断播报通知中是否还存在未获取过的通知数据,如果是,触发所述第二解析模块,否则,按照获取通知数据的顺序依次排列获取到的音频模板和接收到的音频数据得到待播报音频数据,对待播报音频数据进行语音播报,向云服务器返回播报结果。
19.如权利要求13所述的系统,其特征在于,所述字符串模板包括标准字符串模板、用户自定义字符串模板和临时字符串模板;所述匹配模块具体包括:第二匹配单元、第三匹配单元和第四匹配单元;
所述第二匹配单元,用于将所述需要处理的字符串与数据库中保存的标准字符串模板进行匹配,如匹配到标准字符串模板,则将匹配到的标准字符串模板的编号保存为标准模板编号类型的待组织数据,并将所述标准模板编号类型的待组织数据与所述需要处理的字符串的索引对应保存,如未匹配到标准字符串模板,则触发所述第三匹配单元;
所述第三匹配单元,用于将未匹配到标准字符串模板的需要处理的字符串与数据库中保存的用户自定义字符串模板进行匹配,如匹配到用户自定义字符串模板,则将匹配到的用户自定义字符串模板的编号保存为用户自定义模板编号类型的待组织数据,并将所述用户自定义模板编号类型的待组织数据与所述匹配到用户自定义字符串模板的需要处理的字符串的索引对应保存,如未匹配到用户自定义字符串模板,则触发所述第四匹配单元;
所述第四匹配单元,用于将未匹配到用户自定义字符串模板的需要处理的字符串与数据库中保存的临时字符串模板进行匹配,如匹配到临时字符串模板,则将匹配到临时字符串模板对应的音频数据保存为音频数据类型的待组织数据,并将所述音频数据类型的待组织数据与所述匹配到临时字符串模板的需要处理的字符串的索引对应保存。
20.如权利要求19所述的系统,其特征在于,所述匹配模块还包括:更新发送单元和获取发送单元;
所述更新发送单元,用于更新与所述需要处理的字符串匹配的临时字符串模板的次数,如更新后的次数达到预设值,将所述临时字符串模板作为标准字符串模板并保存到数据库中,向所述云音箱推送包含所述标准字符串模板的编号的更新模板通知;
所述获取发送单元,用于根据云音箱发送的获取音频数据请求获取与所述标准字符串模板的编号对应的音频数据,将获取到的音频数据与所述标准字符串模板的编号发送给所述云音箱;
所述云音箱还包括:解析发送模块;
所述解析发送模块,用于接收所述更新模板通知,解析所述更新模板通知得到标准字符串模板的编号,根据所述标准字符串模板的编号向所述云服务器发送所述获取音频数据请求。
21.如权利要求13所述的系统,其特征在于,所述云服务器还包括:设置模块;
所述设置模块,用于将所述将未匹配到字符串模板的需要处理的字符串设置为临时字符串模板,根据所述临时字符串模板合成音频数据并与所述临时字符串模板对应保存,设置所述临时字符串模板的次数为初始值。
22.如权利要求13所述的系统,其特征在于,所述系统还包括:用户服务器,所述用户服务器包括:第一发送模块和第一接收模块;
所述第一发送模块,用于向所述云服务器发送注册请求;
所述第一接收模块,用于接收所述云服务器发送的用户标识和用户密钥并保存;
所述云服务器还包括:第一接收发送模块;
所述第一接收发送模块,用于接收所述用户服务器发送的注册请求,生成用户标识和用户密钥并保存,向所述用户服务器发送所述用户标识和所述用户密钥。
23.如权利要求22所述的系统,其特征在于,所述用户服务器包括:第二发送模块和第二接收模块;
所述第二发送模块,用于向所述云服务器发送绑定设备请求;所述绑定设备请求包含待绑定的云音箱的设备序列号和用户标识;
所述第二接收模块,用于接收云服务器发送的绑定响应,完成设备绑定;
所述云服务器还包括:第二接收发送模块;
所述第二接收发送模块,用于接收所述用户服务器发送的绑定设备请求,解析所述绑定设备请求得到待绑定的云音箱的设备序列号和用户标识,将所述云音箱的设备序列号和所述用户标识进行绑定,向所述用户服务器发送所述绑定响应。
24.如权利要求13所述的系统,其特征在于,所述云音箱还包括:获取签名发送模块、保存生成发送模块和建立连接模块;
所述获取签名发送模块,用于获取预存的设备序列号、系统版本信息和版本密钥,生成第一随机数,使用所述版本密钥对所述设备序列号、所述系统版本信息和所述第一随机数进行签名得到第一签名数据,根据所述设备序列号、所述系统版本信息、所述第一随机数和所述第一签名数据组织协商设备密钥请求,向所述云服务器发送所述协商设备密钥请求;
所述保存生成发送模块,用于接收并保存所述云服务器发送的设备密钥,生成设备名和设备密码,根据所述设备序列号、所述设备名和所述设备密码组织登录请求,向所述云服务器发送所述登录请求;
所述建立连接模块,用于接收所述云服务器发送的登录成功响应,与所述云服务器建立长连接;
所述云服务器还包括:解析验签模块、生成保存发送模块和解析校验模块;
所述解析验签模块,用于接收所述云音箱发送的协商设备密钥请求,解析所述协商设备密钥请求得到设备序列号、系统版本信息、第一随机数和第一签名数据,使用预存的版本密钥对所述第一签名数据进行验签,当验签通过时,触发所述生成保存发送模块;
所述生成保存发送模块,用于根据所述设备序列号和所述系统版本信息生成设备密钥,将所述设备密钥与所述设备序列号对应保存,向所述云音箱发送所述设备密钥;
所述解析校验模块,用于接收所述云音箱发送的登录请求,解析所述登录请求得到设备序列号、设备名和设备密码,根据所述设备序列号查找所述设备序列号对应的设备密钥,如查找到则根据所述设备序列号、所述设备名和所述设备密钥对所述设备密码进行校验,当校验通过时,向所述云音箱发送登录成功响应。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011611829.7A CN112307280B (zh) | 2020-12-31 | 2020-12-31 | 基于云服务器实现字符串转音频的方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011611829.7A CN112307280B (zh) | 2020-12-31 | 2020-12-31 | 基于云服务器实现字符串转音频的方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112307280A true CN112307280A (zh) | 2021-02-02 |
CN112307280B CN112307280B (zh) | 2021-03-16 |
Family
ID=74487651
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011611829.7A Active CN112307280B (zh) | 2020-12-31 | 2020-12-31 | 基于云服务器实现字符串转音频的方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112307280B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1889170A (zh) * | 2005-06-28 | 2007-01-03 | 国际商业机器公司 | 基于录制的语音模板生成合成语音的方法和系统 |
CN106504742A (zh) * | 2016-11-14 | 2017-03-15 | 海信集团有限公司 | 合成语音的传输方法、云端服务器和终端设备 |
US10115389B2 (en) * | 2015-07-15 | 2018-10-30 | Baidu Online Network Technology (Beijing) Co., Ltd. | Speech synthesis method and apparatus |
CN110120220A (zh) * | 2019-05-29 | 2019-08-13 | 飞天诚信科技股份有限公司 | 一种云音箱的工作方法及系统 |
CN110287830A (zh) * | 2019-06-11 | 2019-09-27 | 广州市小篆科技有限公司 | 智能穿戴终端、云端服务器和数据处理方法 |
CN111522516A (zh) * | 2020-07-06 | 2020-08-11 | 飞天诚信科技股份有限公司 | 一种云播报打印数据的处理方法及系统 |
-
2020
- 2020-12-31 CN CN202011611829.7A patent/CN112307280B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1889170A (zh) * | 2005-06-28 | 2007-01-03 | 国际商业机器公司 | 基于录制的语音模板生成合成语音的方法和系统 |
US10115389B2 (en) * | 2015-07-15 | 2018-10-30 | Baidu Online Network Technology (Beijing) Co., Ltd. | Speech synthesis method and apparatus |
CN106504742A (zh) * | 2016-11-14 | 2017-03-15 | 海信集团有限公司 | 合成语音的传输方法、云端服务器和终端设备 |
CN110120220A (zh) * | 2019-05-29 | 2019-08-13 | 飞天诚信科技股份有限公司 | 一种云音箱的工作方法及系统 |
CN110287830A (zh) * | 2019-06-11 | 2019-09-27 | 广州市小篆科技有限公司 | 智能穿戴终端、云端服务器和数据处理方法 |
CN111522516A (zh) * | 2020-07-06 | 2020-08-11 | 飞天诚信科技股份有限公司 | 一种云播报打印数据的处理方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN112307280B (zh) | 2021-03-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6592583B1 (ja) | 情報交換用の方法及び装置 | |
EP1743286B1 (en) | Feature extraction in a networked portable device | |
CN112291724B (zh) | 一种5g信令可视化方法及装置 | |
CN1921523A (zh) | 内容通信系统、内容通信方法及通信终端设备 | |
WO2016145981A1 (zh) | 一种数据传输系统及方法 | |
CN104751847A (zh) | 一种基于声纹识别的数据获取方法及系统 | |
CN102648625A (zh) | 广播业务分组的实现方法、装置和系统 | |
CN106686639A (zh) | 用于智能语音交互设备的网络配置方法、装置及相关设备 | |
CN116319955B (zh) | 语音播报方法、装置、存储介质和计算机设备 | |
CN114598555B (zh) | 一种不同平台可切换的播报实现方法及系统 | |
CN112307280B (zh) | 基于云服务器实现字符串转音频的方法及系统 | |
KR100607492B1 (ko) | 음원 정보를 제공하는 방법 및 장치 및, 이를 이용한 부가 서비스를 설정하는 방법 및 장치 | |
CN111756741B (zh) | 一种数据传输方法、装置、设备及存储介质 | |
JP4453656B2 (ja) | 端末認証装置および方法 | |
CN101778360A (zh) | 一种基于特征信息的移动通信方法及系统 | |
JP2011248118A (ja) | 音響通信方法を用いたホームページ誘導方法およびシステム | |
CN117688524A (zh) | 代码数字签名与信息验证方法、装置、设备及存储介质 | |
US10285193B2 (en) | Wireless communication system and wireless apparatus | |
CN114936539A (zh) | 文本编码与解码方法、装置、设备和介质 | |
US20190097737A1 (en) | System, method and relay base station for transmitting data via acoustic internet of things | |
MX2010009048A (es) | Metodo, aparato, sistema y equipo de usuario para procesamiento de tonos de espera de llamada con melodia. | |
CN111953841A (zh) | 一种电力调度电话系统 | |
KR102291586B1 (ko) | 디지털 방송 기반의 상품 정보 제공 시스템 및 방법 | |
CN112019934B (zh) | 一种数据处理方法及其系统 | |
CN117520617B (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 |