一种支持双队列混合播报音频的方法技术

技术编号:39765318 阅读:6 留言:0更新日期:2023-12-22 02:20
本公开实施例提供了一种支持双队列混合播报音频的方法

【技术实现步骤摘要】
一种支持双队列混合播报音频的方法、装置、设备及介质


[0001]本公开实施例涉及电子通信及音频播报
,尤其涉及一种支持双队列混合播报音频的方法

装置

设备及介质


技术介绍

[0002]当前各种物联网设备越来越多

而在设备中都会加入各式各样的语言提示内容,这就需要进行音频播报处理功能

[0003]由于各种智能设备在运行时会进行各式各样的音频播报,播放的方式分为
mp3

tts
,此两种方法各有优点和缺点,
tts
播报时为合成的机械声音,缺乏感情,用户体验略差,而
mp3
为录制的音频文件,可以播报音乐

真人语言等,但可能会出现内容覆盖不全的情况,而大部分通用语音使用
mp3
,一些情况较少的或定制的语音使用
tts
播报,则可最大程度上规避掉单独使用一直方法时出现的劣势

[0004]行业内的解析方式是单独使用一种播报方式,分别去做解析

显然,目前缺少一种混合播报方式,既能提升用户体验,又能有多种选择的音频播报


技术实现思路

[0005]本公开实施例的目的在于提供一种支持双队列混合存取音频的方法

装置

设备及介质,从而解决现有技术中存在的前述问题

[0006]为了实现上述目的,本公开实施例采用的技术方案如下:
[0007]本公开实施例一方面提供了一种支持双队列混合存取音频的方法,所述方法包括:
[0008]响应音频播报请求,确定所述音频播报请求对应的播报缓存头标识类型;
[0009]若所述播报缓存头标识类型是录制音频,则等待上一条语音播报结束,读取所述录制音频缓存队列里的录制音频数据,并播报语音,直至语音播报结束;
[0010]若所述播报缓存头标识类型是合成音频,则等待上一条语音播报结束,读取所述合成音频缓存队列里的音量值,并播报语音,直至语音播报结束

[0011]示例性的,所述录制音频包括:
mp3、amr、pcm

amv
中的一种;所述合成音频包括:
TTS。
[0012]示例性的,所述读取所述录制音频缓存队列里的录制音频数据之前,所述方法还包括:
[0013]判断录制音频与合成音频在进栈和出栈时的互斥锁是否已释放;
[0014]如果所述互斥锁已释放,则录制音频对所述互斥锁进行加锁;
[0015]在读取所述录制音频缓存队列里的录制音频数据之后,将其存到播放暂存区后释放所述互斥锁

[0016]示例性的,所述读取所述合成音频缓存队列里的音量值之前,所述方法还包括:
[0017]判断录制音频与合成音频在进栈和出栈时的互斥锁是否已释放;
[0018]如果所述互斥锁已释放,则合成音频对所述互斥锁进行加锁;
[0019]在读取所述合成音频缓存队列里的合成音频数据之后,将其存到播放暂存区后释放所述互斥锁

[0020]示例性的,所述响应音频播报请求之前,所述方法还包括,分别存储所述录制音频与所述合成音频,具体为:
[0021]创建播报缓存头标识的结构体,并对所述播报缓存头标识的结构体进行初始化

[0022]示例性的,所述创建播报缓存头标识的结构体,并对所述播报缓存头标识的结构体进行初始化之后,所述方法还包括:
[0023]创建所述合成音频的缓存空间,并对所述合成音频的缓存空间进行初始化;
[0024]主控创建录制音频与合成音频在进栈和出栈时的互斥锁;
[0025]准备调用接口入栈一条合成音频;
[0026]判断所述互斥锁是否已释放,如果所述互斥锁已释放,则判断所述合成音频已缓存个数是否达到第一预设阈值,如果所述合成音频的已缓存个数未达到第一预设阈值,则入栈播报缓存头标识类型为所述合成音频,将所述合成音频播报内容以及对应的参数传入所述合成音频的缓存空间;
[0027]所述合成音频缓存的写指针对应增加

[0028]示例性的,所述创建播报缓存头标识的结构体,并对所述播报缓存头标识的结构体进行初始化之后,所述方法还包括:
[0029]创建所述录制音频的缓存空间,并对所述录制音频的缓存空间进行初始化;
[0030]主控创建录制音频与合成音频在进栈和出栈时的互斥锁;
[0031]准备调用接口入栈一条录制音频;
[0032]判断所述互斥锁是否已释放,如果所述互斥锁已释放,则判断所述录制音频已缓存个数是否达到第二预设阈值,如果所述录制音频的已缓存个数未达到第二预设阈值,则入栈播报缓存头标识类型为所述录制音频,将所述录制音频播报内容以及对应的参数传入所述录制音频的缓存空间;
[0033]所述录制音频缓存的写指针对应增加

[0034]本公开实施例另一方面提供了一种支持双队列混合存取音频的装置,所述装置包括:
[0035]类型确定模块,用于响应音频播报请求,确定所述音频播报请求对应的播报缓存头标识类型;
[0036]录制音频播放模块,用于若所述播报缓存头标识类型是录制音频,则等待上一条语音播报结束,读取录制音频缓存队列里的录制音频数据,并播报语音,直至播报结束;
[0037]合成音频播放模块,用于若所述播报缓存头标识类型是合成音频,则等待上一条语音播报结束,读取合成音频缓存队列里的音量值,并播报语音,直至播报结束

[0038]本公开实施例另一方面提供了一种电子设备,包括:一个或多个处理器;存储器,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如上所述混合播报音频的方法

[0039]本公开实施例另一方面提供了一种计算机可读介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述混合播报音频的方法

[0040]本公开实施例的有益效果是:
[0041]本公开实施例将录制音频和合成音频混合播报提高了用户体验,同时最大程度的提高了性价比,给用户更好的体验效果

播报方法简单,通过播报缓存头标识类型判断播报类型

而且增加了产品软件的灵活性,缩短了开发周期,达到了降低成本的目的

附图说明
[0042]图1是本公开实施例的一种支持双队列混合播报音频的方法流程图;
[0043]图2是本公开实施例的一种支持双队列混合播报音频的装置的结构示意图;
[0044]图3是本公开实施例的一种支持双队列混合播报音频的存储
TTS
音频的方法流程示意图;
[0045]图4是本公开实施本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.
一种支持双队列混合播报音频的方法,其特征在于,所述方法包括:响应音频播报请求,确定所述音频播报请求对应的播报缓存头标识类型;若所述播报缓存头标识类型是录制音频,则等待上一条语音播报结束,读取所述录制音频缓存队列里的录制音频数据,并播报语音,直至语音播报结束;若所述播报缓存头标识类型是合成音频,则等待上一条语音播报结束,读取所述合成音频缓存队列里的音量值,并播报语音,直至语音播报结束
。2.
根据权利要求1所述的方法,其特征在于,所述录制音频包括:
mp3、amr、pcm

amv
中的一种;所述合成音频包括:
TTS。3.
根据权利要求1所述的方法,其特征在于,所述读取所述录制音频缓存队列里的录制音频数据之前,所述方法还包括:判断录制音频与合成音频在进栈和出栈时的互斥锁是否已释放;如果所述互斥锁已释放,则录制音频对所述互斥锁进行加锁;在读取所述录制音频缓存队列里的录制音频数据之后,将其存到播放暂存区后释放所述互斥锁
。4.
根据权利要求1所述的方法,其特征在于,所述读取所述合成音频缓存队列里的音量值之前,所述方法还包括:判断录制音频与合成音频在进栈和出栈时的互斥锁是否已释放;如果所述互斥锁已释放,则合成音频对所述互斥锁进行加锁;在读取所述合成音频缓存队列里的合成音频数据之后,将其存到播放暂存区后释放所述互斥锁
。5.
根据权利要求1至4任一项所述的方法,其特征在于,所述响应音频播报请求之前,所述方法还包括,分别存储所述录制音频与所述合成音频,具体为:创建播报缓存头标识的结构体,并对所述播报缓存头标识的结构体进行初始化
。6.
根据权利要求5所述的方法,其特征在于,所述创建播报缓存头标识的结构体,并对所述播报缓存头标识的结构体进行初始化之后,所述方法还包括:创建所述合成音频的缓存空间,并对所述合成音频的缓存空间进行初始化;主控创建录制音频与合成音频在进栈和出栈时的互斥锁;准备调用接口入栈...

【专利技术属性】
技术研发人员:宁涛
申请(专利权)人:艾体威尔电子技术北京有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1