一种文本朗读方法及设备与流程


一种文本朗读方法及设备
1.本技术要求于2021年4月20日提交国家知识产权局、申请号为202110425978.2、申请名称为“一种双队列缓存在线播放控制的方法”的中国专利申请的优先权,其全部内容通过引用结合在本技术中。
技术领域
2.本技术实施例涉及电子技术领域,尤其涉及一种文本朗读方法及设备。


背景技术:



3.听书是用户的一个常见需求,以前人们主要通过收音机收听说书节目。移动互联网兴起后,人们开始通过手机获取各种信息。比如,通过手机阅读各类文章,是每个人都会有的使用习惯。然而,在人们处于走路,开车或坐车等比较颠簸的场景,或者眼睛疲劳,光线暗沉等场景下,使用手机阅读文章会遇到很大的困难,此时文章如果能通过手机发声来读给用户听,则将可以解决用户的这类痛点。


技术实现要素:



4.本技术实施例提供一种文本朗读方法及设备,能够将电子设备显示的用户界面上的文本转换成可播放的音频数据来实现文本朗读,还可通过在用户界面上叠加显示的朗读控制面板实时地向用户提示当前正在朗读的语句,并根据用户的指示随时切换朗读语句。
5.为达到上述目的,本技术实施例采用如下技术方案:
6.一方面,本技术实施例提供了一种对显示的内容进行朗读的方法,可应用于电子设备。该方法包括:电子设备显示第一用户界面;接收用户的第一操作;响应第一操作,获取第一用户界面的第一内容;显示第二用户界面,第二用户界面显示的内容包括第一内容中的文本;其中,第二用户界面遮挡第一用户界面的部分显示区域;朗读第二用户界面的内容中的第一语句,并显示正在朗读的第一语句在第二用户界面对应的文本的标识信息。
7.在该方案中,电子设备能够朗读第一用户界面上的文本,并通过叠加在第一用户界面部分显示区域上的第二用户界面显示标识信息,从而将正在朗读的内容动态、直观地提示给用户,与用户的交互性好,用户使用体验较好。例如,第一用户界面可以为目标应用的界面,第二用户界面可以为朗读控制面板对应的界面。
8.在一种可能的设计中,电子设备在显示第二用户界面之前,该方法还包括:针对获取的第一用户界面的第一内容,识别出一个或多个语句。
9.也就是说,电子设备以语句为粒度,对获取的第一用户界面的内容中的文本进行识别和划分。
10.在另一种可能的设计中,该方法还包括:电子设备检测用户的第二操作;响应于第二操作,基于第二操作对应的文本位置或文本内容,控制电子设备朗读第二操作对应的第二语句,或从第二语句的位置开始往下朗读。
11.在该方案中,用户可以指示电子设备朗读期望的任意位置的语句,从而以语句为
粒度进行灵活、精细和精确地朗读控制。
12.在另一种可能的设计中,该方法还包括:电子设备显示正在朗读的第二语句在第二用户界面对应的文本的标识信息。
13.也就是说,随着朗读语句的切换,电子设备可以实时、显式、动态地显示正在朗读的语句的标识信息,与用户的互动性较强。
14.在另一种可能的设计中,该方法还包括:第二操作为用户作用于第二用户界面显示的第二语句对应的文本位置的触摸操作;基于检测的触摸操作,确认获取第二语句对应的语音并朗读。
15.这样,用户通过针对第二用户界面上期望朗读的语句所在位置的触摸操作,可以指示电子设备朗读该语句。
16.在另一种可能的设计中,该方法还包括:电子设备基于识别出的一个或多个语句显示第二用户界面,第二用户界面显示的一个或多个语句中的每一个语句对应的一个控件;基于检测的触摸操作,确认获取第二语句对应的语音并朗读,具体包括:基于第二操作对应的触摸操作,触发第二语句对应的控件;响应于控件事件,获取与控件对应的第二语句的语音并朗读。
17.在该方案中,电子设备可以通过控件事件,确定控件事件对应的用户指定的语句,并朗读该语句,从而能够以语句为粒度进行灵活、精细和精确地朗读控制。
18.在另一种可能的设计中,该方法还包括:电子设备对识别出的一个或多个语句进行索引;该方法还包括:第二用户界面显示的内容还包括播放控件,播放控件可以用于对朗读的进度或朗读的速度进行控制。播放控件包括进度条,进度条与一个或多个语句的索引匹配,基于识别的语句的粒度进行控制。播放控件包括下移控件,下移控件用于控制当前的朗读进度切换到下一语句;和/或,播放控件包括上移控件,上移控件用于控制当前的朗读进度切换到上一语句。
19.这样,当用户拖动进度条,或指示电子设备朗读下一句或上一句时,电子设备可以通过对语句进行索引匹配,来确定待朗读的语句。
20.在另一种可能的设计中,该方法还包括:电子设备检测用户的第三操作;响应于第三操作,调整第二用户界面对应的窗口的大小。
21.也就是说,用户可以指示电子设备调整第二用户界面对应的窗口的尺寸,例如将第二用户界面最小化,或者将第二用户界面在半屏显示和全屏显示之间进行切换等。
22.在另一种可能的设计中,该方法还包括:电子设备检测用户的第四操作;响应于第四操作,最小化第二用户界面对应的窗口,继续朗读当前的文本内容不中断;在最小化第二用户界面对应的窗口后,该方法还包括:通过朗读功能对应的卡片还原第二用户界面,显示当前朗读的文本内容和进度。
23.也就是说,在第二用户界面对应的窗口最小化后,电子设备可以继续朗读文本不中断。并且,第二用户界面消失,第二用户界面可以通过对应的卡片恢复显示。
24.在另一种可能的设计中,播放控件包括刷新控件,该方法还包括:电子设备响应于刷新控件,停止对当前文本的朗读,并重新获取第一用户界面的第二内容进行朗读。
25.其中,第二内容可能与第一内容相同或不同。电子设备可以响应于用户指示刷新的操作,重新获取当前第一用户界面上的内容,并朗读重新获取的内容中的文本。
26.在另一种可能的设计中,该方法还包括:电子设备将识别出一个或多个语句分别发送给服务器进行文本转语音的处理;接收服务器处理后得到的语音并缓存;实时朗读服务器处理得到的语音,或将服务器处理得到的语音按识别的一个或多个语句进行按序缓存。
27.也就是说,电子设备和服务器按语句依次进行文本到语音的转换和缓存。
28.在另一种可能的设计中,该方法还包括:电子设备通过两个队列来缓存服务器处理得到的语音;第一队列用于缓存服务器当前正在处理的语句的一个或多个语音包;第二队列用于缓存服务器已处理的一个或多个语句对应的语音;朗读第二用户界面的内容中的第一语句,包括:若当前从服务器接收的语音为第一语句的语音,则从第一队列获取第一语句对应的语音进行朗读;或若当前从服务器接收的语音不为第一语句的语音,则从第二队列获取第一语句对应的语音进行朗读。
29.这样,每个语音包合成后即存入第一队列中,第一队列可以使得用户等待1个语音包合成后,即可快速地听到朗读声音,用户等待开始朗读的时间短,开始朗读的时间可以减少至十ms级,朗读的实时性较好。又由于音频合成速度较快,因而第二队列中缓存的语句一般超前于正在播报的语句,在用户拖动进度条时,若拖动后的进度落入到第二队列中,就可以达成立即播放的效果,而不需要等待,实时响应性强,
30.在另一种可能的设计中,在电子设备显示第二用户界面之前,该方法还包括:电子设备对获取的第一用户界面的第一内容进行处理,去除非文本信息,得到第一内容中的文本;将处理得到的文本显示在第二用户界面上。
31.也就是说,电子设备将不适于朗读的非文本信息去除后,才显示在第二用户界面上,以使得朗读的内容和第二用户界面上显示的内容相一致。
32.在另一种可能的设计中,在电子设备显示第二用户界面之前,该方法还包括:电子设备根据特殊标点符号对处理得到的文本进行分句,得到识别的一个或多个语句。
33.也就是说,电子设备对文本按句划分后,才显示在第二用户界面上。
34.在另一种可能的设计中,该方法还包括:电子设备响应于用户的语音指令,对朗读的进度或朗读的速度进行控制。
35.这样,用户可以采用语音指令的方式,控制文本朗读的进度或速度。
36.在另一种可能的设计中,该方法还包括:电子设备检测用户的第五操作;响应于用户的第五操作,滚动显示第二用户界面上的文本内容,且继续朗读当前的文本内容不中断。
37.在该方案中,第二用户界面上显示的文本内容可以滚动显示,以方便用户查看或切换要朗读的语句。
38.另一方面,本技术实施例提供了一种对显示的内容进行朗读的装置,该装置包含在电子设备中。该装置具有实现上述方面及可能的设计中任一方法中电子设备行为的功能,使得电子设备执行上述方面任一项可能的设计中电子设备执行的对显示的内容进行朗读的方法。该功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。硬件或软件包括至少一个与上述功能相对应的模块或单元。例如,该装置可以包括显示单元、处理单元和朗读单元等。
39.又一方面,本技术实施例提供了一种电子设备,包括:屏幕,用于显示用户界面;一个或多个处理器;存储器;以及一个或多个计算机程序,一个或多个计算机程序被存储在存
储器中,一个或多个计算机程序包括指令,当指令被电子设备执行时,使得电子设备执行上述方面任一项可能的设计中电子设备执行的对显示的内容进行朗读的方法。
40.又一方面,本技术实施例提供了一种电子设备,包括:一个或多个处理器;以及存储器,存储器中存储有代码。当代码被电子设备执行时,使得电子设备执行上述方面任一项可能的设计中电子设备执行的对显示的内容进行朗读的方法。
41.又一方面,本技术实施例提供了一种计算机可读存储介质,包括计算机指令,当计算机指令在电子设备上运行时,使得电子设备执行上述方面任一项可能的设计中的对显示的内容进行朗读的方法。
42.又一方面,本技术实施例提供了一种计算机程序产品,当计算机程序产品在计算机上运行时,使得计算机执行上述方面任一项可能的设计中电子设备执行的对显示的内容进行朗读的方法。
43.又一方面,本技术实施例提供了一种芯片系统,该芯片系统应用于电子设备。该芯片系统包括一个或多个接口电路和一个或多个处理器;接口电路和处理器通过线路互联;接口电路用于从电子设备的存储器接收信号,并向处理器发送信号,信号包括存储器中存储的计算机指令;当处理器执行计算机指令时,使得电子设备执行上述方面任一项可能的设计中的对显示的内容进行朗读的方法。
44.上述其他方面对应的有益效果,可以参见关于方法方面的有益效果的描述,此处不予赘述。
附图说明
45.图1为本技术实施例提供的一种电子设备的硬件结构示意图;
46.图2为本技术实施例提供的一种朗读方法流程图;
47.图3为本技术实施例提供的一种界面示意图;
48.图4为本技术实施例提供的另一种界面示意图;
49.图5为本技术实施例提供的一组界面示意图;
50.图6为本技术实施例提供的另一种界面示意图;
51.图7为本技术实施例提供的另一种界面示意图;
52.图8a为本技术实施例提供的另一组界面示意图;
53.图8b为本技术实施例提供的另一组界面示意图;
54.图8c为本技术实施例提供的另一组界面示意图;
55.图8d为本技术实施例提供的另一组界面示意图;
56.图8e为本技术实施例提供的一种拖拽点的拖拽示意图;
57.图9a为本技术实施例提供的另一组界面示意图;
58.图9b为本技术实施例提供的另一组界面示意图;
59.图9c为本技术实施例提供的另一组界面示意图;
60.图10为本技术实施例提供的另一组界面示意图;
61.图11为本技术实施例提供的另一组界面示意图;
62.图12为本技术实施例提供的另一组界面示意图;
63.图13a为本技术实施例提供的另一组界面示意图;
64.图13b为本技术实施例提供的另一组界面示意图;
65.图14为本技术实施例提供的一种模块交互示意图;
66.图15为本技术实施例提供的一种缓存示意图;
67.图16为本技术实施例提供的另一种缓存示意图;
68.图17为本技术实施例提供的另一种缓存示意图;
69.图18为本技术实施例提供的一种文本朗读的逻辑框图;
70.图19为本技术实施例提供的另一种文本朗读的逻辑框图;
71.图20为本技术实施例提供的模块交互时序图;
72.图21为本技术实施例提供的一种朗读方法流程图;
73.图22为本技术实施例提供的其他文本朗读方案界面图;
74.图23为本技术实施例提供的另一种电子设备的结构示意图。
具体实施方式
75.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行描述。其中,在本技术实施例的描述中,除非另有说明,“/”表示或的意思,例如,a/b可以表示a或b;本文中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,在本技术实施例的描述中,“多个”是指两个或多于两个。
76.以下,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本实施例的描述中,除非另有说明,“多个”的含义是两个或两个以上。
77.在本技术实施例中,“示例性地”或者“例如”等词用于表示作例子、例证或说明。本技术实施例中被描述为“示例性地”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性地”或者“例如”等词旨在以具体方式呈现相关概念。
78.针对人们在一些场景下不方便阅读电子设备上的文章的痛点,本技术实施例提供了一种文本朗读方法,能够将电子设备用户界面上的文本转换成音频数据从而进行朗读,还可以实时地向用户提示朗读内容所在的位置,并根据用户的指示随时切换朗读语句。
79.例如,该电子设备可以是手机、平板电脑、可穿戴设备(例如智能手表)、车载设备、增强现实(augmented reality,ar)/虚拟现实(virtual reality,vr)设备、笔记本电脑、超级移动个人计算机(ultra-mobile personal computer,umpc)、上网本或个人数字助理(personal digital assistant,pda)等移动终端,本技术实施例对电子设备的具体类型不作任何限制。
80.示例性的,图1示出了电子设备100的一种结构示意图。电子设备100可以包括处理器110,外部存储器接口120,内部存储器121,通用串行总线(universal serial bus,usb)接口130,充电管理模块140,电源管理模块141,电池142,天线1,天线2,移动通信模块150,无线通信模块160,音频模块160,扬声器160a,受话器160b,麦克风160c,耳机接口160d,传感器模块180,按键190,马达191,指示器192,摄像头193,显示屏194,以及用户标识模块
(subscriber identification module,sim)卡接口195等。其中传感器模块180可以包括压力传感器180a,陀螺仪传感器180b,气压传感器180c,磁传感器180d,加速度传感器180e,距离传感器180f,接近光传感器180g,指纹传感器180h,温度传感器180j,触摸传感器180k,环境光传感器180l,骨传导传感器180m等。
81.处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(application processor,ap),调制解调处理器,图形处理器(graphics processing unit,gpu),图像信号处理器(image signal processor,isp),控制器,存储器,视频编解码器,数字信号处理器(digital signal processor,dsp),基带处理器,和/或神经网络处理器(neural-network processing unit,npu)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
82.其中,控制器可以是电子设备100的神经中枢和指挥中心。控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
83.处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110中的存储器为高速缓冲存储器。该存储器可以保存处理器110刚用过或循环使用的指令或数据。如果处理器110需要再次使用该指令或数据,可从存储器中直接调用。避免了重复存取,减少了处理器110的等待时间,因而提高了系统的效率。
84.在一些实施例中,电子设备100的天线1和移动通信模块150耦合,天线2和无线通信模块160耦合,使得电子设备100可以通过无线通信技术与网络以及文本转语音技术(text to speech,tts)云服务器等其他设备通信。从而,电子设备100可以向tts云服务器发送文本,并从tts云服务器获取文本转换成的音频数据。
85.电子设备100通过gpu,显示屏194,以及应用处理器等实现显示功能。gpu为图像处理的微处理器,连接显示屏194和应用处理器。gpu用于执行数学和几何计算,用于图形渲染。处理器110可包括一个或多个gpu,其执行程序指令以生成或改变显示信息。
86.显示屏194用于显示图像,视频等。显示屏194包括显示面板。显示面板可以采用液晶显示屏(liquid crystal display,lcd),有机发光二极管(organic light-emitting diode,oled),有源矩阵有机发光二极体或主动矩阵有机发光二极体(active-matrix organic light emitting diode的,amoled),柔性发光二极管(flex light-emitting diode,fled),miniled,microled,micro-oled,量子点发光二极管(quantum dot light emitting diodes,qled)等。在一些实施例中,电子设备100可以包括1个或n个显示屏194,n为大于1的正整数。比如,显示屏194可以用于显示应用界面,显示朗读控制面板,显示朗读控制卡片等。
87.内部存储器121可以用于存储计算机可执行程序代码,可执行程序代码包括指令。处理器110通过运行存储在内部存储器121的指令,从而执行电子设备100的各种功能应用以及数据处理。内部存储器121可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统,至少一个功能所需的应用程序(比如声音播放功能,图像播放功能等)等。存储数据区可存储电子设备100使用过程中所创建的数据(比如音频数据,电话本等)等。此外,内部存储器121可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universal flash storage,ufs)等。
88.电子设备100可以通过音频模块160,扬声器160a,受话器160b,麦克风160c,耳机
接口160d,以及应用处理器等实现音频功能。例如音乐播放,录音等。
89.音频模块160用于将数字音频信息转换成模拟音频信号输出,也用于将模拟音频输入转换为数字音频信号。音频模块160还可以用于对音频信号编码和解码。在一些实施例中,音频模块160可以设置于处理器110中,或将音频模块160的部分功能模块设置于处理器110中。比如,音频模块160可以获取用户的语音指令,并向用户朗读文本。
90.扬声器160a,也称“喇叭”,用于将音频电信号转换为声音信号。电子设备100可以通过扬声器160a收听音乐,或收听免提通话。
91.受话器160b,也称“听筒”,用于将音频电信号转换成声音信号。当电子设备100接听电话或语音信息时,可以通过将受话器160b靠近人耳接听语音。
92.麦克风160c,也称“话筒”,“传声器”,用于将声音信号转换为电信号。当或发送语音信息时,用户可以通过人嘴靠近麦克风160c发声,将声音信号输入到麦克风160c。电子设备100可以设置至少一个麦克风160c。在另一些实施例中,电子设备100可以设置两个麦克风160c,除了采集声音信号,还可以实现降噪功能。在另一些实施例中,电子设备100还可以设置三个,四个或更多麦克风160c,实现采集声音信号,降噪,还可以识别声音来源,实现定向录音功能等。
93.触摸传感器180k,也称“触控面板”。触摸传感器180k可以设置于显示屏194,由触摸传感器180k与显示屏194组成触摸屏,也称“触控屏”。触摸传感器180k用于检测作用于其上或附近的触摸操作。触摸传感器可以将检测到的触摸操作传递给应用处理器,以确定触摸事件类型。可以通过显示屏194提供与触摸操作相关的视觉输出。在另一些实施例中,触摸传感器180k也可以设置于电子设备100的表面,与显示屏194所处的位置不同。比如,触摸屏可以检测用户的触摸操作,从而触发手机开启文本朗读功能或进行朗读控制等。
94.可以理解的是,本技术实施例示意的结构并不构成对电子设备100的具体限定。在本技术另一些实施例中,电子设备100可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
95.在本技术实施例中,显示屏194可以显示目标应用的界面,处理器110通过运行存储在内部存储器121的指令,控制音频模块160播放当前显示的目标应用界面上的文本对应的音频数据,实现文本朗读功能。显示屏194还可以显示朗读控制面板等,以方便用户进行互动和播放控制。并且,处理器110可以响应于用户针对朗读控制面板上任意语句的触摸操作,控制电子设备100从该语句开始往下朗读。而且,随着快进或快退等播放进度的变化,朗读控制面板可以实时地突出显示当前在读语句,用户使用体验较好。
96.以下将以电子设备为具有图1所示结构的手机为例,对本技术实施例提供的文本朗读方法进行阐述。如图2所示,该方法可以包括:
97.201、手机启动文本朗读功能。
98.用户在想要手机朗读当前显示的用户界面上的文本时,可以指示手机启动文本朗读功能,以便为用户朗读该用户界面上的文本。该文本朗读功能也可以有具体的名称,如小艺朗读等。其中,用户想要手机朗读的用户界面可以称为第一用户界面。在以下实施例中,用户界面可以简称为界面。
99.可以理解的是,手机显示的任意用户界面都可以对应手机上的某个应用,比如手
机显示的桌面也可以理解为桌面管理应用的界面。也就是说,第一用户界面为某个目标应用的界面。用户在想要手机朗读当前显示的目标应用的界面上的文本时,可以指示手机启动文本朗读功能。
100.在本技术的一些实施例中,目标应用可以为手机的任意应用,具体可以是本机的系统应用,也可以是三方应用,本技术实施例对目标应用的具体类型不予限定。比如,该目标应用可以是小说应用、浏览器应用或新闻类应用等。也就是说,手机可以朗读任意应用界面上显示的文本,可以朗读用户基于任意应用界面看到的内容。也即,手机可以朗读任意用户界面上的文本。
101.在另一些实施例中,目标应用为预设的第一特定应用,比如与文章有关的相关应用,或者界面上文本内容通常较多的应用。比如,该目标应用可以是新闻类应用、或知乎等。手机可以朗读预设的第一特定应用的用户界面上的文本。
102.在另一些实施例中,目标应用为预设的第二特定应用以外的其他应用。示例性的,手机设置有应用黑名单,黑名单包括第二特定应用(比如不适于朗读的金融类应用),第二特定应用的界面不允许被朗读。手机可以朗读第二特定应用以外的其他应用的用户界面上的文本。
103.在另一些实施例中,手机可以朗读符合预设规则的用户界面上的文本。本技术实施例对该预设规则的具体内容不予限定。比如,该预设规则包括用户界面上的文字数量大于或者等于预设值。
104.在以下实施例中,目标应用的用户界面,也可以简称为目标应用的界面或应用界面。
105.其中,手机启动文本朗读功能的方式可以有多种。例如,手机可以响应于用户的语音指令,启动文本朗读功能。示例性的,参见图3,手机在检测到用户的语音指令“小艺小艺”之后,唤醒语音助手;而后在检测到用户的语音指令“朗读一下”之后,语音助手唤醒朗读模块,启动文本朗读功能。本技术实施例对用户启动文本朗读功能的语音指令的具体内容不予限定。
106.再例如,手机可以在应用界面上显示朗读控件,响应于用户针对该朗读控件的操作,手机可以启动文本朗读功能。该朗读控件用于提示用户可使用手机朗读该界面上的文本,并方便用户通过该控件快捷地启动文本朗读功能。在一些实施例中,手机在应用界面上显示有朗读悬浮球,该朗读悬浮球即为该朗读控件,手机检测到用户点击该朗读悬浮球的操作后,启动文本朗读功能。在另一些实施例中,手机在可进行文本朗读的第一特定应用的界面上,显示如图4所示的胶囊形态的朗读控件401。
107.再例如,手机检测到用户预设的语音指令后,才在应用界面上显示朗读控件。响应于用户针对该朗读控件的操作,手机启动文本朗读功能。
108.再例如,手机可以在开启智慧识屏hitouch功能(例如检测到用户针对应用界面的长按操作后开启hitouch功能)后,在界面上显示朗读控件。手机响应于用户针对该朗读控件的操作,启动文本朗读功能。
109.再例如,手机在检测到用户预设的快捷手势(比如三指下拉或隔空手势等)后,启动文本朗读功能。
110.需要说明的是,手机还可以响应于用户的其他触摸操作、语音指令或手势等操作
启动文本朗读功能,本技术实施例对触发手机启动文本朗读功能的具体方式不予限定。其中,用户指示手机启动文本朗读功能的操作,可以称为第一操作。
111.在一些实施例中,若某个应用不支持文本朗读功能,则手机在检测到用户指示启动该功能的操作后,参见图5中的(a)-(b)所举的示例,可以提示用户不支持朗读该界面或不支持朗读功能。
112.202、手机朗读当前显示的应用界面上的文本。
113.手机启动文本朗读功能后,获取当前显示的应用界面上的文本,并为用户朗读该文本。如,手机启动文本朗读功能后,首先获取当前显示的目标应用的界面内容(即获取第一用户界面的第一内容)。该界面内容包括界面上各视图节点的信息,例如文本和图片等信息。而后,手机从获取到的界面内容中,获取应用界面上的文本。
114.在一些实施例中,手机获取应用界面上的文本,包括获取该应用界面已经加载的文本部分(已经加载的文本可能为一屏,例如当前界面显示的内容,也可能多于一屏的内容,例如除当前界面显示的内容外还包括后续页面的内容,不予限定),不包括该应用界面当前未加载的文本部分,若不进行刷新操作则不再继续获取未加载的文本部分。在另一些实施例中,手机获取应用界面上的文本,包括获取该应用界面已经加载的文本部分,还包括在朗读过程中继续获取的该应用界面之前未加载的文本部分。
115.手机启动文本朗读功能后,如图6中的(a)所示,在应用界面上叠加显示朗读控制面板601。此时,手机显示的朗读控制面板也可以称为第二用户界面。第二用户界面不同于待朗读的应用界面对应的第一用户界面,第二用户界面至少遮挡所述第一用户界面的部分显示区域。在一些实施例中,该朗读控制面板的窗口尺寸小于应用界面的窗口尺寸,以便手机在显示朗读控制面板的同时,还可以方便用户了解当前正在朗读的文本对应的应用界面和目标应用。例如,手机启动文本朗读功能后,朗读控制面板可以半屏显示。朗读控制面板可以显示在屏幕的下半部分。朗读控制面板的底部可以与应用界面的底部对齐。朗读控制面板可用于与用户之间进行交互,以方便用户查看朗读内容,或进行朗读控制等操作。
116.在手机启动文本朗读功能后,若当前应用界面没有可朗读的文字,则参见图7所举示例,手机可以提示用户:当前界面没有可读文字。
117.在手机启动文本朗读功能后,若当前应用界面有可朗读的文字,则朗读控制面板601上可以显示应用界面上的文本,该文本可以包括一个或多个语句。该文本可以按句识别,且一个语句划分为一个段落。
118.在一些实施例中,手机启动文本朗读功能后,可以根据待朗读应用界面上可读文字的数量,通过语音播报或文字显示等多种方式,提示用户当前应用界面上的文本预计的朗读总时长。例如,手机可以在朗读控制面板601上显示朗读总时长提示信息602:“当前文本预计朗读少于一分钟”,或者“当前文本预计朗读xx分钟”,或者“当前文本预计朗读超过30分钟”等。在一种实现方案中,该时长提示信息602可以显示在朗读控制面板上的第一行,以方便用户快速、直观地获知朗读所需的总时长。在后续的朗读过程中,手机还可以在朗读控制面板上提示用户已朗读时长和/或剩余朗读时长等时长相关信息。
119.手机还可以通过语音播报或文字显示等多种方式,提示用户当前的朗读状态。例如,朗读控制面板601上可以显示朗读状态提示信息603。该朗读状态提示信息603可以包括:正在朗读(或朗读中)、朗读暂停或朗读结束等朗读状态。手机开始朗读应用界面上的文
本内容后,朗读状态为正在朗读。
120.此外,朗读控制面板上还可以包括文本朗读功能的图标604,和/或文本朗读功能的名称(如小艺朗读)等信息。
121.在一些实施例中,手机当前正在朗读的语句,可以显示在朗读控制面板601上预设的固定位置,例如可以显示在朗读控制面板601上靠近顶部的位置。示例性的,当前正在朗读的语句可以从朗读控制面板上第二行的位置开始显示,以方便用户快速、直观地定位当前正在朗读的文本内容,提高用户使用体验。朗读控制面板601上还可以显示正在朗读的语句之后的语句。以下实施例中以预设的固定位置为第二行为例进行说明。
122.参见图8a中的(a)-(b),随着朗读的进行,当手机朗读下一句时,朗读控制面板上显示的文本内容向上滚动,当前正在朗读的语句自动顶至第二行的位置。在一些实施例中,朗读控制面板上的第一行可以显示当前朗读语句的上一句,朗读总时长不再显示;在另一些实施例中,朗读控制面板上的第一行不再显示朗读总时长而显示剩余朗读时长和/或已朗读时长。
123.在正在朗读状态下,若语音朗读业务持有的音频焦点被其他应用(比如来电、音乐、视频播放或音视频通话等)抢占,则手机自动暂停文本朗读,朗读控制面板停止显示,菜单栏(或称为通知栏)中生成朗读控制卡片。也可以说,朗读控制面板切换为菜单栏中的朗读控制卡片。在音频焦点被其他应用释放,语音朗读业务重新持有音频焦点后,手机恢复文本朗读。
124.在正在朗读状态下,若手机退出当前界面显示,并显示桌面、显示其他应用界面或者锁屏,则在一种实施方式中,手机继续朗读该文本,朗读控制面板切换为菜单栏中的朗读控制卡片。在另一种实施方式中,手机暂停朗读该文本,朗读控制面板切换为菜单栏中的朗读控制卡片。在另一种实施方式中,手机停止朗读该文本,朗读控制面板消失,并退出文本朗读功能。
125.在一些实施例中,手机在朗读控制面板上显示当前正在朗读的语句对应的文本的标识信息,以直观地、动态地、实时地向用户突出提示当前正在朗读的文本内容和朗读位置,提高互动性和用户使用体验。
126.示例性的,该标识信息可以为当前正在朗读的语句的文字信息,朗读控制面板上仅显示当前正在朗读的语句的文字信息,不显示其他语句的文字信息。
127.再示例性的,该标识信息可以为当前正在朗读的语句的文字信息,朗读控制面板上显示当前正在朗读的语句以及相邻几个语句的文字信息,且正在朗读的语句的文字信息区别于其他语句的显示方式而显示。比如,如图6中的(a)所示,该标识信息为朗读控制面板上高亮显示的当前正在朗读的语句的文字信息,或者如图6中的(b)所示,该标识信息为下划线标示的当前正在朗读的语句的文字信息,或者该标识信息可以为加粗显示的当前正在朗读的语句的文字信息等。
128.在其他一些实施例中,手机在朗读控制面板上显示的当前正在朗读的语句对应的文本的标识信息,为当前正在朗读的语句中正在朗读的那一行的文字信息。该行文字信息的显示方式可以区别于其他行的显示方式而显示。
129.在本技术的实施例中,朗读控制面板上还可以包括一些播放控件,用于对朗读的进度或朗读的速度等方面进行控制。例如,该播放控件可以用于进行朗读上一句、朗读下一
句、暂停/恢复、快进、快退、倍速、刷新、最小化或退出等的控制。
130.例如,如图8a中的(b)所示,朗读控制面板上包括下一句控件801(也可以称为下移控件或其他名称),手机检测到用户点击下一句控件801的操作后,朗读下一句文本,并如图8a中的(c)所示,将下一句文本自动顶至朗读控制面板上第二行的位置(即上述预设的固定位置)并高亮显示。其中,若手机当前正在朗读应用界面的最后一个语句,则在检测到用户点击下一句控件后手机确定朗读结束,朗读状态切换为朗读结束,且下一句控件失效,下一句控件的显示状态发生变化。示例性的,参见图8a中的(d),朗读结束后,失效的下一句控件801置为灰(以下简称置灰),从而区别于其他有效的控件的状态而显示,用户点击下一句控件801后手机不进行响应。
131.当应用界面上的文本的最后一个语句朗读完毕后,手机可以播报“朗读完毕”来提示用户,且朗读状态由“正在朗读”切换为“朗读结束”。在一些实施例中,在朗读结束后,若手机在预设时长内未检测到用户针对文本朗读的相关操作,则自动退出文本朗读功能。在另一些实施例中,在朗读结束后,手机不会自动退出文本朗读功能,在检测到用户指示退出的操作后才退出文本朗读功能。
132.再例如,如图8b中的(a)所示,朗读控制面板上包括上一句控件802(也可以称为上移控件或其他名称),手机检测到用户点击上一句控件802的操作后,朗读上一句文本,并如图8b中的(b)所示,将上一句文本高亮显示且自动顶至朗读控制面板上第二行的位置。其中,若手机当前正在朗读应用界面的第一个语句,则上一句控件失效。
133.再例如,如图8c中的(a)所示,朗读控制面板上包括暂停/恢复控件803,当朗读状态为正在朗读时,手机检测到用户点击控件803的操作后,停止朗读该文本,此时如图8c中的(b)所示,朗读状态由正在朗读切换为朗读暂停。而后,手机再次检测到用户点击控件803的操作后,恢复朗读文本内容,此时如图8c中的(a)所示朗读状态由朗读暂停切换为正在朗读。
134.在一些实施例中,朗读控制面板上还可以包括快进控件,下一句控件也可以用于快进控制。手机检测到用户长按或多次点击下一句控件的操作后,或者手机检测到用户点击快进控件的操作后,根据用户操作对应的快进后的文本进度与当前显示的应用界面整个文本的比例关系,确定待朗读语句的起始位置,并从该起始位置处开始往下朗读。
135.在一些实施例中,朗读控制面板上还可以包括快退控件,上一句控件也可以用于快退控制。手机检测到用户长按或多次点击上一句控件的操作后,或者手机检测到用户点击快退控件的操作后,根据用户操作对应的快退后的文本进度与整个文本的比例关系,确定待朗读语句的起始位置,并从该起始位置处开始往下朗读。
136.另外,朗读控制面板上还可以包括进度条,手机检测到用户拖动进度条的操作后,根据拖动操作对应的文本进度与整个文本的比例关系,确定进度条上的拖拽点对应的待朗读语句的起始位置,并从该起始位置处开始往下朗读。其中,在用户拖动进度条未松手的过程中,文本朗读不中断;在用户拖动进度条并松手后,手机从拖动后的位置开始往下朗读文本。
137.可以理解的是,当用户指示快进或快退时,进度条上拖拽点的位置也相应地前/后移动,手机可以确定进度条上的拖拽点对应的待朗读语句的起始位置,并从该起始位置处开始往下朗读。
138.在本技术的实施例中,手机可以对识别出的一个或多个语句进行索引,进度条与语句的索引匹配,手机可以基于识别的语句的粒度进行控制。比如,每个语句可以对应一个节点,进度条与语句的节点相匹配,用户拖动进度条后,拖拽点可以根据比例关系对应某个语句的节点,手机朗读该节点对应的语句。示例性的,用户拖动如图8d中的(a)所示的进度条800后,若如图8d中的(b)所示拖拽点80与第三个语句对应,则手机开始朗读第三个语句。
139.在一种实现方式中,如图8e中的(a)所示,用户拖动进度条时,拖拽点只能拖动到语句节点对应的离散的位置,停止拖拽后,手机从拖拽点所在节点对应的语句位置开始往下朗读。
140.在另一种实现方式中,语句节点位置对应语句的开始位置,如图8e中的(b)所示,用户拖动进度条时,拖拽点可以拖动到任意位置,当拖拽点拖拽到两个语句节点之间的位置并松手后,拖拽点自动对应后一个节点的位置,手机从后一个节点对应的语句位置开始往下朗读。
141.在另一种实现方式中,语句节点位置对应语句的开始位置,如图8e中的(c)所示,用户拖动进度条时,拖拽点可以拖动到任意位置,当拖拽点拖拽到两个节点之间的位置并松手后,拖拽点自动对应前一个节点的位置,手机从前一个节点对应的语句位置开始往下朗读。
142.此外,如图8a中的(b)所示,朗读控制面板上包括倍速控件804,手机检测到用户点击倍速控件804选择目标倍速的操作后,根据目标倍速对应的速度朗读文本。例如,该目标倍速可以包括0.5倍速、1倍速或2倍速等。
143.朗读控制面板上还可以包括刷新控件,手机检测到用户点击刷新控件的操作后,重新获取应用界面的界面内容(即重新获取第一用户界面的第二内容),并从该界面内容中获取文本并朗读。比如,由于网络等原因可能而导致应用界面的文本未完全加载,手机无法朗读界面的全部文本内容,此时用户可以利用刷新控件重新获取文本,以便手机可以加载并朗读界面上的全部文本。示例性的,如图9a中的(a)所示,在手机已经朗读了一段时间的情况下,若检测到用户点击刷新控件805的操作,则重新获取应用界面的文本,并如图9a中的(b)所示重新开始朗读,进度条也从头开始移动。可以理解的是,与刷新前相比,刷新后的应用界面上包括的文本或图片等内容可能已经发生了变化。
144.如图9b中的(a)所示,朗读控制面板上还包括退出控件806,手机检测到用户点击退出控件806的操作后,退出文本朗读功能,停止朗读文本,且如图9b中的(b)所示朗读控制面板消失。
145.在朗读结束状态下,若手机检测到用户点击暂停/恢复控件的操作,则从头朗读界面上的文本内容;若手机检测到用户点击刷新的操作,则重新获取文本并从头朗读界面上的文本内容。或者,在朗读结束状态下,若手机确定用户在预设时长(例如可以为5s或10s等)内没有操作,则退出文本朗读功能,朗读控制面板消失。
146.此外,参见图9c中的(a)-(d),手机开启文本朗读功能后,如果在网络异常(比如,文本抓取与音频合成过程中无网络,弱网,或网络连接超时等),则无法获取到应用界面上的文本或者获取到文本后无法进行朗读,从而导致结果出现异常。此时,手机可以将该异常提示给用户,或者提醒用户稍后再试。在这些情况下,刷新控件有效,其他控件失效(例如置灰)用户点击后无响应。在一些实施例中,在这些情况下,若预设时长内未开始朗读且未检
测到用户操作,则手机退出文本朗读功能。
147.在本技术的另一些实施例中,手机还可以响应于用户的语音指令,进行朗读上一句、朗读下一句、暂停/恢复、快进、快退、倍速、刷新、最小化或退出等关于朗读进度、速度或退出的控制。比如,手机检测到用户“朗读下一句”的语音指令后,停止朗读当前语句并朗读下一句。再比如,手机检测到用户“小艺小艺,暂停朗读”的语音指令后,停止朗读文本内容。再比如,手机检测到用户“从从哈尔滨来到北京这句开始读”的语音指令后,切换为从该语句开始往下朗读。
148.在一些实施例中,朗读控制面板的形式、窗口尺寸或位置等还可以进行调整。比如,当朗读控制面板以半屏显示时,手机可以响应于用户拖动朗读控制面板边框的操作,移动朗读控制面板在屏幕上的显示位置。
149.再比如,参见图10中的(a),朗读控制面板上包括最小化控件807,手机检测到用户点击最小化控件807的操作后,将朗读控制面板最小化,并保持文本朗读不中断。或者,手机检测到用户点击屏幕上的返回(back)键、主页(home)键或菜单(menu)键等的操作后,将朗读控制面板最小化,并保持文本朗读不中断。或者,手机可以响应于用户针对朗读控制面板的下拉操作,或者响应于用户针对控件1003或附近区域的下拉操作,将朗读控制面板最小化。
150.或者,在朗读控制面板以半屏显示时,参见图10中的(a),当手机检测到用户朗读控制面板以外的区域时,将朗读控制面板最小化。在一些实施例中,应用界面上叠加设置有蒙层,当手机检测到用户点击朗读控制面板以外的区域内的蒙层时,将朗读控制面板最小化。
151.在本技术的一些实施例中,朗读面板最小化为将朗读控制面板缩底,即缩小至屏幕底部的尺寸较小的控件,比如图10中的(b)所示的窄条状的缩底控件1001,包括播放控件、文本朗读功能的图标或名称等。可以理解的是,附图所示的缩底控件1001仅为示例性说明,缩底控件也可以具有其他的形态,缩底控件1001上也可以显示更多或更少的控件,不予限定。或者,在本技术的另一些实施例中,朗读面板最小化为在应用界面上消失,当用户调出菜单栏(比如从屏幕顶部下拉)时,如图10中的(c)所示,手机可以在菜单栏中显示朗读控制卡片1002。
152.其中,当朗读控制面板首次/每次缩底后,如图10中的(b)所示,手机还可以提示用户:您可以上拉面板以重新唤起朗读控制面板。而后,手机检测到用户从控件1001位置开始的上拉操作后,如图10中的(a)所示,恢复显示朗读控制面板;或者,手机检测到用户从屏幕底部开始的上拉操作后,还原显示朗读控制面板。当朗读控制面板首次/每次切换为朗读控制卡片后,如图11中的(a)所示,手机还可以提示用户:您可以点击小艺朗读卡片,重新唤起朗读控制面板。
153.其中,朗读控制卡片上可以包括文本朗读功能的名称或图标等,以表明该卡片用于进行朗读功能控制。当用户点击该朗读控制卡片时,手机可以恢复显示朗读控制面板。示例性的,在图11中的(b)所示情况下,若手机检测到用户点击该朗读控制卡片,则可以还原显示如图11中的(c)所示的朗读控制面板。可以理解的是,随着朗读的进行,朗读进度会随着更新。朗读控制卡片上还可以包括一些播放控件,用于进行朗读进度或速度等的控制,例如可以包括朗读暂停/恢复、朗读上一句、朗读下一句、快进、快退、倍速、刷新、进度条或退
出等多个控件。朗读卡片上还可以包括朗读状态、已朗读时长、剩余朗读时长或当前正在朗读的语句等中的一种或多种信息。在一些实施例中,朗读控制卡片上还可以提示有目标应用的相关信息,以便用户获知手机正在朗读的文本的来源。
154.在本技术实施例中,用户指示最小化朗读控制面板的操作可以称为第四操作,例如第四操作可以为用户点击最小化控件807的操作。
155.再比如,在手机检测到用户最小化朗读控制面板的操作后,朗读控制面板在当前界面上消失,手机可以显示如图12中的(a)所示的朗读控制悬浮球1201,并继续朗读文本不中断。而后,即便手机显示其他界面,文本朗读进程也仍然继续进行。当用户点击该朗读控制悬浮球1201时,如图12中的(b)所示,手机可以恢复显示朗读控制面板。在一些实施例中,朗读控制悬浮球1201可以显示目标应用的相关信息(例如应用名称或图标等),以向用户表明当前正在朗读的文本的来源。
156.在一些实施例中,手机可以有多个文本朗读任务,当执行其中一个文本朗读任务时,其他文本朗读任务被暂停。在一种技术方案中,菜单栏中可以包括多个文本朗读任务分别对应的朗读控制卡片,用户可以根据需要点击相应的卡片来指示手机朗读对应的文本。在另一些技术方案中,每个文本朗读任务都有对应的朗读控制悬浮球,用户可以根据需要点击相应的朗读控制悬浮球来指示手机朗读对应的文本。在另一些技术方案中,手机显示一个朗读控制悬浮球,当有多个朗读任务时,用户点击朗读控制悬浮球可以依次切换不同的朗读任务,朗读控制悬浮球可以显示当前朗读任务对应的应用的名称或图标等相关提示信息,以向用户表明当前朗读文本的来源。该朗读控制悬浮球被用户拖动到屏幕边缘后,可以隐藏一部分以减少对下层界面的遮挡,用户将朗读控制悬浮球拖到屏幕内后,显示完整的朗读控制悬浮球。
157.再比如,手机可以响应于用户的第三操作,调整朗读控制面板窗口的大小。示例性的,参见图13a中的(a)-(b),当朗读控制面板以半屏显示时,手机可以响应于用户针对朗读控制面板的上拉操作,或者响应于用户针对控件1003或附近区域的上拉操作,全屏显示朗读控制面板。此外,调整朗读控制面板窗口的大小还可以包括将朗读控制面板最小化,以及将缩底的朗读控制面板切换为半屏显示的朗读控制面板等。
158.在一些实施例中,朗读控制面板上显示的文本,可以响应于用户的第五操作(例如滑动操作)而上/下滚动。举例来说,参见图13a中的(b),朗读控制面板全屏显示,手机检测到用户在朗读控制面板上向上滑动的操作后,如图13a中的(c)所示,向上滚动显示文本。而后,如图13a中的(d)-(e)所示,若手机检测到用户针对朗读控制面板上某个语句的操作(可以称为第二操作,例如点击、双击或长按等针对某个语句的触摸操作),则从用户指定的语句位置开始往下朗读,所朗读的语句高亮并自动顶至第二行的位置。或者,如图13a中的(d)-(e)所示,若手机检测到用户针对朗读控制面板上某个位置的操作(也可以称为第二操作,例如点击、双击或长按等针对某个位置的触摸操作),则从用户指定的位置对应的语句开始往下朗读,所朗读的语句高亮并自动顶至第二行的位置。
159.或者,朗读控制面板上的文本滚动显示后,若手机在预设时长内未检测到用户的朗读控制操作,则如图13a中的(f)所示,自动将此时在读语句顶至第二行的位置。可以理解的是,随着时间的推移,手机此时在读的语句可能已经不再是文本滚动显示之前的在读语句了。
160.需要说明的是,当朗读控制面板半屏显示时,朗读控制面板上的文本也可以滚动,用户也可以触发从任意语句位置开始往下朗读,这里不予赘述。示例性的,参见图13b中的(a),朗读控制面板半屏显示,若检测到用户针对朗读控制面板上某个语句的操作(也可以称为第二操作,例如点击、双击或长按等),则如图13b中的(b)所示,手机从用户指定的语句位置开始往下朗读,所朗读的语句高亮并自动顶至第二行的位置。
161.在其他一些实施例中,手机也可以响应于用户针对某个语句的操作而仅朗读该语句,但不继续朗读该语句之后的语句。
162.需要说明的是,朗读控制面板上显示的文本是以语句为单位进行划分的,每个语句都对应朗读控制面板上的一个显示控件,每个显示控件都有自己的标识。手机检测到用户针对期望朗读的某个语句的触摸操作后,可以触发该语句对应的显示控件,响应于该显示控件事件,手机获取该显示控件对应的语句,并从该语句位置开始朗读,从而能够使得用户以语句为粒度进行灵活、精细和精确地朗读控制。
163.另外,在其他一些实施例中,在文本朗读功能开启后,朗读控制面板上的朗读总时长显示预设时长(例如10s)后即停止显示,正在朗读的语句自动顶至第一行的位置。在后续的朗读进程中,正在朗读的语句也自动顶至第一行的位置。
164.在本技术实施例中,用于执行文本朗读方法的手机,可以采用安卓(android)或鸿蒙等多种操作系统,具体可以采用分层架构,事件驱动架构,微核架构,微服务架构,或云架构等软件架构的形式。本技术实施例对手机所采用的软件系统及架构形式不予限定。以下从软件实现的角度,对本技术实施例提供的文本朗读方法进行阐述。
165.本技术实施例以分层架构的android系统为例,示例性说明手机的软件结构。android系统可以分为四层,从上至下分别为应用程序层,应用程序框架层,安卓运行时(android runtime)和系统库,以及内核层。其中,应用程序层可以包括一系列应用程序包。应用程序框架层为应用程序层的应用程序提供应用编程接口(application programming interface,api)和编程框架。应用程序框架层包括一些预先定义的函数。android runtime包括核心库和虚拟机。android runtime负责安卓系统的调度和管理。核心库包含两部分:一部分是java语言需要调用的功能函数,另一部分是安卓的核心库。应用程序层和应用程序框架层运行在虚拟机中。虚拟机将应用程序层和应用程序框架层的java文件执行为二进制文件。虚拟机用于执行对象生命周期的管理,堆栈管理,线程管理,安全和异常的管理,以及垃圾回收等功能。系统库可以包括多个功能模块。例如:表面管理器(surface manager),媒体库(media libraries),三维图形处理库(例如:opengl es),2d图形引擎(例如:sgl)等。内核层是硬件和软件之间的层。内核层至少包含显示驱动,摄像头驱动,音频驱动,传感器驱动。
166.在本技术实施例中,如图14所示,手机的应用程序层可以包括目标应用和语音朗读应用,应用程序框架层可以包括窗口管理服务和无障碍管理服务等模块。其中,目标应用的界面内容通过控件来呈现,例如该控件可以为按钮、进度条、单选框或文本框等。应用界面可以对应一个视图,每个控件可以对应一个视图节点,应用界面可以包括视图根节点以及多个视图节点。语音朗读应用包括文本采集、文本处理、朗读用户界面(user interface,ui)和朗读播放器等模块。窗口管理服务用于显示控制和管理窗口程序,可以获取显示屏大小,判断是否有状态栏,锁定屏幕,截取屏幕等。
167.在本技术的实施例中,目标应用可以注册到无障碍管理服务。手机可以通过无障碍管理服务获取目标应用当前显示的应用界面的所有视图节点的节点信息(即上述第一用户界面的第一内容),该节点信息中包括文本、图片、控件的宽度、高度、属性或类型等多种信息。语音朗读应用可以从节点信息中获取应用界面上的文本,从而进行朗读。其中,由于无障碍管理服务是系统服务,会实时获取手机显示的所有视图节点的节点信息,因而通过这种方式手机可以获取任意应用界面上显示的文本。
168.需要注意的是,手机从节点信息获取到的内容包括应用界面上可见的文字,以及节点的类型,高度等信息。为了在开启文本朗读功能后,能够朗读有效的文本部分,手机可以对这些信息进行预处理,以剔除非文本信息,获取可朗读的文本部分。
169.而后,手机以语句为划分单位,一方面通过朗读控制面板将预处理后的文本显示给用户,另一方面将预处理后的文本通过朗读播放器上传给云端的tts云服务器进行文本到语音的转换。转换后的音频文件(或称音频片段、音频数据、音频流、语音流或语音包等)返回到朗读播放器进行播放,从而实现文本朗读功能。
170.基于图14所示的软件模块,本技术实施例提供的文本朗读过程具体可以包括:
171.目标应用的界面内容经窗口管理服务显示,并将界面内容的节点信息传给无障碍管理服务。语音朗读应用实现的文本采集模块从无障碍管理服务中获取节点信息。而后,语音朗读应用中的文本处理模块,对文本采集模块获取到的节点信息进行预处理,从而获取可朗读的文本。其中,语音朗读应用可朗读的文本不限于中文,也包括英文及其他语言,本技术实施例对可朗读文本的语言类型不予限定。
172.可以理解的是,手机还可以通过无障碍管理服务以外的其他方式获取界面内容从而获得应用界面上的文本,比如通过光学字符识别(optical character recognition,ocr)或阅读器接口等来获得应用界面上的文本,本技术实施例对获取应用界面上的文本的具体方式不予限定。
173.在本技术的实施例中,文本处理模块的预处理过程包括:过滤,清洗,排版和分句等。
174.其中,应用界面上包含text相关控件内的文本通常是界面内容的正文,可以被朗读。文本处理模块可以通过保留包含text相关控件内的文本,来对获取的文本数据进行过滤,保留可朗读的文本部分,剔除视图节点的类型或高度等不需要朗读的文本部分。该text相关控件中的文本信息通常为可朗读的有效文本信息。例如,该text相关控件包括但不限于:
175.android控件
176.android.widget.textview
177.android.widget.edittext
178.android.widget.autocompletetextview
179.android.widget.multiautocompletetextview
180.android.webkit.webview
181.华为控件
182.huawei.uikit.hwtextview.widget.hwtextview
183.huawei.uikit.hwedittext.widget.hwedittext
184.文本清洗用于对文本数据进行筛选,剔除用户不期望朗读的部分,比如标签、图片地址、表格或网址等字符。
185.例如,文本处理模块可以通过如下正则剔除用户不期望朗读的标签类型的字符:
186.private static final pattern pattern_label=patternpile("(?:《([a-za-z]+?)(?:(?:(?:\\s[^《》\\s]+?=[^《》\\s]+?)*?)|(?:=[^《》\\s]+?))\\s?》.*?(?:《/\\1》))|"+"(?:《[a-za-z]+?(?:(?:=[^《》\\s]+?\\s?/》)|(?:(?:\\s[^《》\\s]+?=[^《》\\s]+?)*?\\s?/》)))");
[0187]
private static final pattern pattern_img=
[0188]
patternpile("[a-za-z0-9_]+?\\?[a-za-z0-9_]+?=[^&\\s]+(?:&[a-za-z0-9_]+?=[^&\\s]+)*");
[0189]
private static final pattern pattern_java_script=patternpile("^javascript:.*?(?:(?:\\(.*?\\))|;)");
[0190]
再例如,文本处理模块可以通过如下方式剔除用户不期望朗读的,不包含中文、英文、数字等内容的字符:
[0191]
private static final pattern pattern_invalid_characters=patternpile("^[^\\u4e00-\\u9fa5a-za-z0-9]*$");
[0192]
再例如,文本处理模块可以通过如下方式剔除用户不期望朗读的无含义内容,例如至少有一个大写、小写、数字,并且只包含大写、小写、数字和一些异常字符!#$%^&*_-=?.:+/@,以及长度大于20的内容:
[0193]
private static final pattern pattern_special_characters=patternpile("^(?=.*?[a-z])(?=.*?[a-z])(?=.*?[0-9])[a-za-z0-9!#$%^&*_\\-=?.:+/@]{20,}$")。
[0194]
文本处理模块可以对过滤和清洗后的文本进行分句处理,从而识别出一个或多个语句。比如,文本处理模块可以通过标准的标点符号进行分句。示例性的,如下第一类标点可以用于分句:
[0195]
句号。句末点号的一种,主要表示语句的陈述语气。
[0196]
问号?句末点号的一种,主要表示语句的疑问语气。
[0197]
叹号!句末点号的一种,主要表示语句的感叹语气。
[0198]
省略号
……
标号的一种,标示语段中某些内容的省略及意义的断续等。
[0199]
英文的句号.句末点号的一种,主要表示语句的陈述语气。
[0200]
再示例性的,如下第二类标点不能用于分句:
[0201]
引号
“”‘’
标号的一种,标示语段中直接引用的内容或需要特别指出的成分。引号还有「」『』等。
[0202]
括号()标号的一种,标示语段中的注释内容、补充说明或其他特定意义的语句。括号还有[]〔〕【】{}等。
[0203]
书名号《》〈〉标号的一种,标示语段中出现的各种作品的名称。
[0204]
这样,当第二类标点中包括第一类标点时,不能按该第一类标点进行分句;当第一类标点未包含在第二类标点中时,可以按该第一类标点进行分句。
[0205]
再示例性的,以下情况下,英文的句号.不能作为分句:
[0206]
英文缩写mr.wed.
[0207]
数字间(ip地址、日期、带小数的数字、段落数字后的点)(192.168.0.1 2009.3.13.1415926 1.)
[0208]
email 89745859@qq
[0209]
网址https://login.tom/login/
[0210]
分句处理后的文本可以进一步进行排版处理。文本处理模块可以先按视图节点对文本进行基础排序,然后再根据每个视图节点的高度信息,进行辅助调整,将统一高度的相邻行,调整为同一行。举例来说,应用界面上每行包括4个应用图标,如果不进行排版,则语音朗读应用获取到的每个应用图标的名称占一行;进行排版后,四个应用图标的名称排在同一行。排版后的每个语句独立成段。
[0211]
而后,文本处理模块可以将排版后的整个文本送给朗读ui进行显示。其中,朗读ui进行窗口管理和文本显示管理,从而将整个文本中的每个语句独立为一个段落,显示在朗读控制面板上。每个语句都有对应的编号。在一些实施例中,每个语句可以分别对应一个显示控件,手机检测到用户针对该显示控件的操作后,可以确定用户选中了该显示控件对应的语句。
[0212]
如前所述,文本是按语句切分的,并且每一个语句都有对应的编号,该编号可以用于对语句进行索引。文本处理模块将预处理后的文本传给朗读播放器。在一些实施例中,如图14所示,朗读播放器根据预处理后的文本的字符数以及朗读速度经验值等参数,预估朗读总时长。在另一些实施例中,朗读播放器可以将预处理后的文本发送给tts云服务器,tts云服务器根据文本的字符数,文本到音频的转换与合成速度等参数,预估朗读总时长,并将朗读总时长通知给朗读播放器。
[0213]
而后,朗读播放器进行初始化,显示预估的朗读总时长,将预处理后的文本中每个语句,按照顺序发送给云端的tts云服务器。参见图15,tts云服务器逐句对文本进行文本转语音处理。对于每一个语句,tts云服务器可以生成多个音频片段。tts云服务器每合成一个音频片段(例如为语音流mp3格式)后即进行输出,并发送给手机端的朗读播放器。例如,tts云服务器可以通过超文本传输协议(hypertext transfer protocol,http)协议的接口,分别将每个音频片段下发到手机端。其中,每个音频片段的播放时长较短,例如为20ms-50ms。每个音频片段对应的字数较少,例如为1个或2个文字等。朗读播放器将接收到的音频片段加入到缓存1(或称缓存队列1)中缓存。朗读播放器在缓存到第一个音频片段时即开始播放。这样,朗读播放器在1个音频片段合成后即开始播放,也就是说,用户等待1个音频片段合成后即可快速地听到朗读声音,用户等待开始朗读的时间短,开始朗读的时间可以减少至十ms级,朗读的实时性较好,用户使用体验较好。
[0214]
如图16所示,每个语句可以分为多个音频片段进行语音转换和播报。每个语句可以理解为一个文本批次。tts云服务器可以向朗读播放器返回若干次音频片段的数据,朗读播放器收到后即存入缓存1中,并取出进行播报,实现流式实时播放。
[0215]
另外,每个语句的音频文件完成缓存后,tts云服务器会发出结束标识,朗读播放器触发将下一个语句发送给tts云服务器。并且,如图15所示,朗读播放器将已缓存的整个语句的音频文件加入到缓存2(或称缓存队列2)中。如图17所示,整个文本(即应用界面对应的文本,也可以称为一篇文章)可以包括多个语句(即包括多个批次),缓存2中可以缓存每
个批次的完整音频文件。而且,由于tts合成的速度比播放速度快得多,因此在播放的过程中,很快就会将所有音频合成完,并缓存起来。这样,缓存2中缓存的语句一般超前于正在播报的语句。在用户拖动进度条(可以向后拖动或向前拖动)时,若拖动后的进度落入到缓存2,就可以从缓存2中获取相应的音频文件从而达到立即播放的效果,而不需要等待,实时响应性强,用户使用体验较好。如果用户拖动进度条后的进度落入了缓存2中不存在的语句,则立即触发从该句往后文本到语音的合成以及缓存。
[0216]
也就是说,如图17所示,缓存2用于缓存完整的单句文本对应的音频信息,当从缓存2中尝试获取某个语句的音频数据时,若不存在,则说明该语句还没有已经合成好的音频文件,此时实时发起该语句的合成及解码流程,合成及解码过程中会返回若干次音频数据,收到后即缓存到该队列,并取出启动播报,实现流式实时播报。
[0217]
需要说明的是,缓存1和缓存2可以是不同的缓存队列,也可以是同一缓存队列中的两个部分,本技术实施例不予限定。上述缓存1和缓存2的缓存设计,可以达到播放控制并发处理互不影响的效果。
[0218]
另外,朗读播放器还可以对朗读过程进行播放控制。例如,对于用户拖动进度条等操作,朗读播放器会根据拖拽点与进度条的比例,到相应比例对应的语句,并从该语句开始进行播报,或者将该语句及后续的文本发送给tts云服务器进行语音合成。快进、快退操作也可以转换为该比例来进行相应的处理。
[0219]
对于用户调整播报倍速的操作,朗读播放器通过设置相应的控制参数如audiotrack,来调整播报速率。
[0220]
对于用户暂停/恢复的操作,朗读播放器暂停/恢复向tts云服务器请求音频数据,同时暂停和恢复audiotrack的播放。
[0221]
对于用户点击刷新按钮的操作,语音朗读应用重新从应用界面获取文本数据,并重新进行播放流程。
[0222]
对于用户点击最小化“—”控件、返回(back)、菜单(menu)等的操作,朗读控制面板最小化,后台继续放音,朗读控制面板并缩到菜单栏。
[0223]
对于用户点击退出“x”控件的操作,语音朗读应用停止朗读该文本,释放语音朗读应用占用的资源,并销毁朗读ui。
[0224]
举例来说,用户打开新闻应用界面上的一篇文章后,指示开启文本朗读功能,语音朗读应用获取头条文章,并对文章进行预处理。之后,该文章的文本信息被发送到云端tts云服务器。tts云服务器输出的音频数据持续传输到语音朗读应用,语音朗读应用对数据做缓存处理,并开始播放。用户可用暂停、恢复、快进、快退、刷新或退出等操作。
[0225]
此外,图18示出了本技术实施例提供的一种文本朗读的逻辑框图。如图18所示,朗读播放器以句为单位,一句一句地向tts云服务器传送文本。tts云服务器接收到一个语句后,将该语句的文本转换为语音流对应的音频片段,并将音频片段压缩后得到的音频文件(例如压缩为mp3格式的音频文件)传输至朗读播放器。朗读播放器对接收到的该语句的音频文件进行解码,并以音频片段为单位,将相应的音频文件存到缓存1中。如,缓存1中包括音频片段数据包(package)1,package 2,
……
,package n。其中,一个package为一包语音数据,对应一个音频片段。一个语句缓存完毕后送入缓存2中。另外,在一句文本的音频文件在缓存1中缓存完毕后,朗读播放器可将下一句文本发送到tts云服务器,并重复执行上述
过程。如,缓存2中包括语句数据包(sentence)1,sentence 2,
……
,sentence n。其中,一个sentence对应一个语句的完整音频文件。
[0226]
如图18所示,当正在读的文本与存入缓存1中的音频文件为同一句时,audiotrack从缓存1中获取音频文件并播放。当正在读的文本与存入缓存1中的音频文件不是同一句时,audiotrack从缓存2读取该句的音频文件并播放。此外,在一句文本播放完成后,朗读播放器控制朗读ui高亮该语句的下一句,并滚动文字。
[0227]
如图19所示,若由于用户指示快进、快退、拖动进度条、连续点击上一句或下一句等操作,使得待朗读语句发生变化时,则朗读播放器可以通过用户操作对应的文本进度的比例进行计算,到对应的起始语句,即到待朗读语句。若朗读播放器确定缓存2中存在该待朗读语句,则audiotrack从缓存2读取该句的音频文件并立即播放。若朗读播放器确定缓存2中不存在该待朗读语句,则触发向tts云服务器发送该语句。该种情况下,缓存1正在缓存的和在读的是同一语句,audiotrack从缓存1读取音频文件并实时播放。
[0228]
本技术实施例还提供了一种模块交互时序图。如图20所示,手机端包括北向接口、状态机、朗读播放器和解码模块,tts云服务器包括合成模块。在本技术实施例中,北向接口可以包括播报(play)接口、暂停(pause)接口或停止(stop)接口等播放控制接口,可由上层语音朗读应用调用。
[0229]
在北向接口的开始播报接口被语音朗读应用调用后,朗读播放器的状态机根据朗读播放器的当前播放状态,选择忽略播报或者执行播报。如果状态机根据当前状态确定执行播报,则以句为单位,开始执行播报控制逻辑。播报控制逻辑具体的可以包括:朗读播放器(也可称为播控中心)尝试从缓存2中获取待播报语句的音频数据。如果缓存2中没有该语句的音频数据,则发送给tts云服务器中的合成模块进行音频合成,合成后的音频文件通过手机端的解码模块进行解码。在合成解码过程中,中间音频文件不断返回给朗读播放器。之后,朗读播放器可将音频文件存入缓存1中。朗读播放器可调用audio.write接口写数据,不断从缓存1中取数写入。朗读播放器可进行单句播报开始回调。并且,整句话合成解码结束后,存入缓存2中。在文本播报结束后,朗读播放器可进行单句播放结束回调。朗读播放器自动更新播报序列,并启动下一句的播报,之后重复播报控制逻辑。
[0230]
综上所述,本技术实施例提供了一种文本朗读方法,手机可以为用户朗读任意应用界面上的文本,并提供朗读控制面板与用户进行交互。手机可以通过高亮文本的形式,直观、显式、动态地告知用户当前朗读的位置,避免用户不知朗读到何处而迷失。用户可方便地进行暂停/恢复、上一句、下一句、快进、快退、拖动进度条、倍速、刷新界面文本等朗读控制操作,还可以随意点击朗读控制面板中的任意段落,并触发从此处开始朗读,从而可以方便用户随时重听没有听懂的部分,或者跳过不感兴趣的部分,跳至感兴趣的重要部分进行播放。用户拖动进度条后,高亮文本随着拖动后的在读语句的切换而动态跟随,以实时告知用户当前朗读位置,提高互动体验。此外,缓存设计可以实现快速、实时地开始朗读,以及快进、快退或拖动进度条等改变朗读位置后迅速开始朗读,使得用户使用体验较好。
[0231]
另外,结合上述实施例及相应的附图,本技术另一实施例提供一种对显示的内容进行朗读的方法,该方法可以在具有图1所示结构的电子设备上实现。上述实施例和附图的相关内容均适用于本实施例,此处不再赘述。参见图21,该方法包括:
[0232]
2101、电子设备显示第一用户界面。
[0233]
如前所述,该第一用户界面可以是手机显示的任意界面,或者第一特定应用的界面,或者第一特定应用以外的应用的界面等。
[0234]
2102、电子设备接收用户的第一操作。
[0235]
其中,该第一操作可以用于指示电子设备启动文本朗读功能,并获取待朗读的文本内容。例如,该第一操作可以是用户触发语音指令“小艺小艺,朗读一下”的操作,或用户点击朗读控件的操作等。
[0236]
2103、电子设备响应第一操作,获取第一用户界面的第一内容。
[0237]
其中,该第一内容包括第一用户界面上的文本信息。例如,该第一内容可以是第一用户界面上各视图节点的节点信息。
[0238]
2104、电子设备显示第二用户界面,第二用户界面显示的内容包括第一内容中的文本;其中,第二用户界面遮挡第一用户界面的部分显示区域。
[0239]
例如,该第二用户界面可以为上述朗读控制面板对应的界面。
[0240]
2105、电子设备朗读第二用户界面的内容中的第一语句,并显示正在朗读的第一语句在第二用户界面对应的文本的标识信息。
[0241]
其中,该标识信息用于提示用户当前正在朗读的语句内容。
[0242]
电子设备能够朗读第一用户界面上的文本,并通过叠加在第一用户界面部分显示区域之上的第二用户界面,显示标识信息,从而将正在朗读的内容动态、直观地提示给用户,与用户的交互性好,用户使用体验较好。例如,第一用户界面可以为目标应用的界面,第二用户界面可以为朗读控制面板对应的界面。
[0243]
可以理解的是,以上是以电子设备为手机为例进行说明的,当电子设备为平板电脑等其他设备时,仍可以采用以上实施例描述的方法进行文本朗读,这里不再赘述。
[0244]
在另一种文本朗读方案中,如图22中的(a)所示,手机的语音助手可以支持特定厂家的浏览器以及该厂家的部分应用进行文本朗读。该方案受限于特定厂家应用内部,不适用于特定厂家以外的其他应用。在该方案中,朗读进度可按时间前进或后退,可在原文基础上高亮在读文字,但当拖动朗读进度条时,高亮文字不会跟随实时变化。而且,不支持用户点击文章任意段落,触发从此处开始朗读。
[0245]
在另一种文本朗读方案中,如图22中的(b)所示,手机可以响应于用户针对悬浮控件的操作进入无障碍模式,而后在该模式下进行文本朗读。由于无障碍模式是给残障人士使用的,对于正常用户来说使用并不便利。另外,该方案没有显示正在朗读的内容,与用户的互动受限,也不支持拖动进度条,高亮文本,点击开始朗读等交互。而且,界面上显示的悬浮控件对用户的打扰也较大。
[0246]
可以理解的是,为了实现上述功能,电子设备包含了执行各个功能相应的硬件和/或软件模块。结合本文中所公开的实施例描述的各示例的算法步骤,本技术能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。本领域技术人员可以结合实施例对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
[0247]
本技术实施例可以根据上述方法示例对电子设备进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块
中。上述集成的模块可以采用硬件的形式实现。需要说明的是,本实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。例如,在一些实施例中,电子设备可以包括显示单元、处理单元和朗读单元等模块。
[0248]
本技术实施例还提供一种电子设备,包括一个或多个处理器以及一个或多个存储器。该一个或多个存储器与一个或多个处理器耦合,一个或多个存储器用于存储计算机程序代码,计算机程序代码包括计算机指令,当一个或多个处理器执行计算机指令时,使得电子设备执行上述相关方法步骤实现上述实施例中的文本朗读方法。
[0249]
本技术实施例还提供一种电子设备,如图23所示,包括:显示屏(或称屏幕)2301,一个或多个处理器2302,存储器2303,以及一个或多个计算机程序2304,上述各器件可以通过一个或多个通信总线2305连接。其中该一个或多个计算机程序2304被存储在上述存储器2303中并被配置为被该一个或多个处理器2302执行,该一个或多个计算机程序2304包括指令,上述指令可以用于执行上述实施例中的各个步骤。其中,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应实体器件的功能描述,在此不再赘述。
[0250]
示例性的,上述处理器2302具体可以为图1所示的处理器110,上述存储器2303具体可以为图1所示的内部存储器121,上述显示屏2301具体可以为图1所示的显示屏194。
[0251]
本技术的实施例还提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机指令,当该计算机指令在电子设备上运行时,使得电子设备执行上述相关方法步骤实现上述实施例中的文本朗读方法。
[0252]
本技术的实施例还提供了一种计算机程序产品,当该计算机程序产品在计算机上运行时,使得计算机执行上述相关步骤,以实现上述实施例中电子设备执行的文本朗读方法。
[0253]
另外,本技术的实施例还提供一种装置,这个装置具体可以是芯片,组件或模块,该装置可包括相连的处理器和存储器;其中,存储器用于存储计算机执行指令,当装置运行时,处理器可执行存储器存储的计算机执行指令,以使芯片执行上述各方法实施例中电子设备执行的文本朗读方法。
[0254]
其中,本实施例提供的电子设备、计算机可读存储介质、计算机程序产品或芯片均用于执行上文所提供的对应的方法,因此,其所能达到的有益效果可参考上文所提供的对应的方法中的有益效果,此处不再赘述。
[0255]
通过以上实施方式的描述,所属领域的技术人员可以了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
[0256]
在本技术所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0257]
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显
示的部件可以是一个物理单元或多个物理单元,即可以位于一个地方,或者也可以分布到多个不同地方。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0258]
另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0259]
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个可读取存储介质中。基于这样的理解,本技术实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
[0260]
以上内容,仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应以所述权利要求的保护范围为准。

技术特征:


1.一种对显示的内容进行朗读的方法,应用于电子设备,其特征在于,所述方法包括:显示第一用户界面;接收用户的第一操作;响应所述第一操作,获取所述第一用户界面的第一内容;显示第二用户界面,所述第二用户界面显示的内容包括所述第一内容中的文本;其中,所述第二用户界面遮挡所述第一用户界面的部分显示区域;朗读所述第二用户界面的内容中的第一语句,并显示正在朗读的所述第一语句在所述第二用户界面对应的文本的标识信息。2.根据权利要求1所述的方法,其特征在于,在显示所述第二用户界面之前,所述方法还包括:针对获取的第一用户界面的第一内容,识别出一个或多个语句。3.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:检测用户的第二操作;响应于所述第二操作,基于所述第二操作对应的文本位置或文本内容,控制所述电子设备朗读所述第二操作对应的第二语句,或从所述第二语句的位置开始往下朗读。4.根据权利要求3所述的方法,其特征在于,所述方法还包括:显示正在朗读的所述第二语句在所述第二用户界面对应的文本的标识信息。5.根据权利要求3或4所述的方法,其特征在于,所述方法还包括:所述第二操作为用户作用于所述第二用户界面显示的所述第二语句对应的文本位置的触摸操作;基于检测的所述触摸操作,确认所述获取所述第二语句对应的语音并朗读。6.根据权利要求5所述的方法,其特征在于,所述方法还包括:基于识别出的一个或多个语句显示所述第二用户界面,所述第二用户界面显示的所述一个或多个语句中的每一个语句对应的一个控件;所述基于检测的所述触摸操作,确认所述获取所述第二语句对应的语音并朗读,具体包括:基于所述第二操作对应的触摸操作,触发所述第二语句对应的控件;响应于所述控件事件,获取与控件对应的所述第二语句的语音并朗读。7.根据权利要求2-6任一项所述的方法,其特征在于,所述方法还包括:对识别出的一个或多个语句进行索引;所述方法还包括:所述第二用户界面显示的内容还包括播放控件,所述播放控件可以用于对朗读的进度或朗读的速度进行控制;所述播放控件包括进度条,所述进度条与所述一个或多个语句的索引匹配,基于所述识别的语句的粒度进行控制;所述播放控件包括下移控件,所述下移控件用于控制当前的朗读进度切换到下一语句;和/或,所述播放控件包括上移控件,所述上移控件用于控制当前的朗读进度切换到上一语句。8.根据权利要求1-7任一项所述的方法,其特征在于,所述方法还包括:
检测用户的第三操作;响应于所述第三操作,调整所述第二用户界面对应的窗口的大小。9.根据权利要求1-8任一项所述的方法,其特征在于,所述方法还包括:检测用户的第四操作;响应于所述第四操作,最小化所述第二用户界面对应的窗口,继续朗读当前的文本内容不中断;在最小化所述第二用户界面对应的窗口后,所述方法还包括:通过所述朗读功能对应的卡片还原所述第二用户界面,显示当前朗读的文本内容和进度。10.根据权利要求1-9任一项所述的方法,其特征在于,所述播放控件包括刷新控件,所述方法还包括:响应于所述刷新控件,停止对当前文本的朗读,并重新获取所述第一用户界面的第二内容进行朗读。11.根据权利要求2-10任一项所述的方法,其特征在于,所述方法还包括:将识别出一个或多个语句分别发送给服务器进行文本转语音的处理;接收服务器处理后得到的语音并缓存;实时朗读所述服务器处理得到的语音,或将所述服务器处理得到的语音按识别的一个或多个语句进行按序缓存。12.根据权利要求11所述的方法,其特征在于,所述方法还包括:所述电子设备通过两个队列来缓存所述服务器处理得到的语音;所述第一队列用于缓存服务器当前正在处理的语句的一个或多个语音包;所述第二队列用于缓存服务器已处理的一个或多个语句对应的语音;所述朗读所述第二用户界面的内容中的第一语句,包括:若当前从所述服务器接收的语音为第一语句的语音,则从所述第一队列获取所述第一语句对应的语音进行朗读;或若当前从所述服务器接收的语音不为第一语句的语音,则从所述第二队列获取所述第一语句对应的语音进行朗读。13.根据权利要求2-12任一项所述的方法,其特征在于,在所述显示第二用户界面之前,所述方法还包括:对获取的所述第一用户界面的第一内容进行处理,去除非文本信息,得到所述第一内容中的文本;将所述处理得到的文本显示在所述第二用户界面上。14.根据权利要求13所述的方法,其特征在于,在所述显示第二用户界面之前,所述方法还包括:根据特殊标点符号对所述处理得到的文本进行分句,得到所述识别的一个或多个语句。15.根据权利要求1-14任一项所述的方法,其特征在于,所述方法还包括:响应于用户的语音指令,对朗读的进度或朗读的速度进行控制。16.根据权利要求1-15任一项所述的方法,其特征在于,所述方法还包括:
检测用户的第五操作;响应于用户的第五操作,滚动显示所述第二用户界面上的文本内容,且继续朗读当前的文本内容不中断。17.一种电子设备,其特征在于,包括:屏幕,用于显示用户界面;一个或多个处理器;存储器;以及一个或多个计算机程序,其中所述一个或多个计算机程序被存储在所述存储器中,所述一个或多个计算机程序包括指令,当所述指令被所述电子设备执行时,使得所述电子设备执行如权利要求1-16中任一项所述的对显示的内容进行朗读的方法。18.一种计算机可读存储介质,其特征在于,包括计算机指令,当所述计算机指令在计算机上运行时,使得所述计算机执行如权利要求1-16中任一项所述的对显示的内容进行朗读的方法。19.一种计算机程序产品,其特征在于,当所述计算机程序产品在计算机上运行时,使得所述计算机执行如权利要求1-16中任一项所述的对显示的内容进行朗读的方法。

技术总结


本申请实施例提供一种文本朗读方法及设备,涉及电子技术领域,能够朗读电子设备应用界面上的文本,通过应用界面上叠加显示的面板实时地向用户提示正在朗读的语句,并根据用户的指示实时切换朗读语句。该方案包括:电子设备显示第一用户界面;接收用户的第一操作;响应第一操作,获取第一用户界面的第一内容;显示第二用户界面,第二用户界面显示的内容包括第一内容中的文本;其中,第二用户界面遮挡第一用户界面的部分显示区域;朗读第二用户界面的内容中的第一语句,并显示正在朗读的第一语句在第二用户界面对应的文本的标识信息。本申请实施例用于文本朗读。请实施例用于文本朗读。请实施例用于文本朗读。


技术研发人员:

苏庆 孙锋 杨楚 曹林 霍晓越 倪弘沣

受保护的技术使用者:

华为技术有限公司

技术研发日:

2021.04.30

技术公布日:

2022/10/25

本文发布于:2024-09-24 15:19:01,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/3/21044.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:文本   语句   用户   所述
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议