一、ALSA+Pulseaudio在嵌入式Linux中的声音解决方案

Linux音频系统比较复杂,各层间有很多交叉,可能是最无序的子系统,并且它有两套音频驱动框架: OSS (Open Sound System)和ALSA (Advanced Linux Sound Architechture),所以底层驱动有OSS和ALSA两套API。

ALSA经过多年的发展,基本统一了Linux声卡硬件驱动层的借口,OSS日渐退出,但是在ALSA之上的各个应用层,方案和软件繁多复杂,ESD,PulseAudio, JACK,GStreamer, 这些系统组件各个为战,实现了不同的功能。ALSA与Pulseaudio的组合,是嵌入式Linux声音解决方案的常见组合。

PulseAudio是一个声音服务器,简单说,软件要发声就先发消息给声音服务器,然后声音服务器经过处理(主要是多条音频流的混音),然后发给驱动控制声音设备发出声音。Pulseaudio具有良好的可移植性,可以在多个操作系统中运行,包括其他的POSIX平台和微软的Windows。

二、TTS引擎简介

TTS(Text To Speech,文本转语音)是语音合成应用的一种,它将储存于电脑中的文件,如帮助文件或者网页,转换成自然语音输出。TTS可以帮助有视觉障碍的人阅读计算机上的信息,或者只是简单的用来增加文本文档的可读性。TTS经常与声音识别程序一起使用。

常用TTS引擎介绍

1.Ekho

ekho是国产软件,现在到7.7.1版本,一个免费、开源的中文语音合成软件。它目前支持粤语、普通话(国语)、诏安客语、藏语、雅言(中国古代通用语)和韩语(试验中),英文则通过 eSpeak或者Festival间接实现。Ekho支持Linux、Windows和Android平台。

2. eSpeak

是一个小型的、开放源码的语音合成系统,支持多种语言。eSpeak可以将文本转换成音素代码,因此它也可以用于另一个语音合成引擎的前端。

3. Festival

Festival提供了一个通用的框架,基于c++编写的,可用于构建语音合成系统,该系统包含了各种模块示例。它提供了完整的文本转语音的API,原生支持Mac OS,支持的语言包括英语和西班牙语。

4. SpeakRight

SpeakRight 是一个 Java 框架,用于编写语音识别应用,基于 VoiceXML 技术。使用 StringTemplate 模板引擎自动生成 VoiceXML 文档。

5. FreeTTS

FreeTTS 是完全采用 Java 开发的语音合成系统,它是卡内基梅隆大学基于 Flite 这个小型的语音合成引擎开发的。

6.Festvox

Festvox项目构建了一个更加系统化、全新的语音合成功能。Festvox是大部分语音合成库的基础。

7.Mary

MARY是一个采用Java开发的、多语种的文本转语音平台,它支持:德语、英语、美式英语、泰卢固语、土耳其语和俄语。

8. Flite

Flite是一个小型、快速的TTS系统,是著名的语音合成系统festival的C版本,可用于嵌入式系统。

三、pulseaudio在嵌入式系统上

1.在Linux下的典型方案,用户提供配置ALSA来使用PulseAudio提供的虚拟设备。尽管应用使用ALSA会将输出的声音输出到PulseAudio,然后PulseAudio会使用ALSA它自己来访问真正的声卡. PulseAudio同样提供它自己的接口给应用程序,用来直接支持PulseAudio,就像那些遗留的基于ESD的软件,这样使得PulseAudio适合作为ESD的替代品。

2.Pulseaudio与ekho的关系

ekho通过pulseaudio提供的接口发声,如果系统没有pulseaudio支持,ekho只能将文字转换为音频文件。

3.Pulseaudio在嵌入式系统上的缺点

a.Pulseaudio本身不能在root模式下运行

b.Pulseaudio如果想在root模式下运行,需要使用system模式

c.在system模式下运行时,出于安全考虑会禁止加载模块并且禁用共享内存数据传输,这意味着:系统模式下更高的内存使用率和CPU负载

四、pulseaudio工作原理图

Linux声音解决方案与TTS引擎相关推荐

  1. STB 上Linux软件系统解决方案

    近年来,国内巨大的STB潜在市场,吸引了包括芯片厂商.CA厂商.中间件供应商.机顶盒生产厂商等厂家的热情,围绕STB的竞争全面展开. 机顶盒是一种专用设备,包括软件模块和硬件模块.软件模块包括系统引导 ...

  2. java tts引擎_Android TTS系列二——如何开发一款系统级tts引擎?

    上篇文章Android TTS系列一--如何让app具备tts能力分享了如何通过第三方tts sdk和Android speech包下的接口来拥有tts能力,这次分享下如何开发一款系统级tts引擎.代 ...

  3. ubuntu16.04没有声音解决方案( 通俗易懂)

    ubuntu16.04没有声音解决方案( 通俗易懂) 参考文章: (1)ubuntu16.04没有声音解决方案( 通俗易懂) (2)https://www.cnblogs.com/zwb12345/p ...

  4. ubuntu18.04 没声音解决方案(坑自己版)

    ubuntu18.04 没声音解决方案(坑自己版) 参考文章: (1)ubuntu18.04 没声音解决方案(坑自己版) (2)https://www.cnblogs.com/jiangyuqin/p ...

  5. Ubuntu系统没有声音解决方案

    Ubuntu系统没有声音解决方案 关机然后按下电源键启动电脑 打开一个新的终端然后键入sudo apt-get install pavucontrol 输入 pavucontrol 选择配置选项 选择 ...

  6. 笔记本喇叭无声音解决方案

    笔记本电脑突然没有声音,但是右下角的小喇叭显示正常.其中有一原因如下:@笔记本喇叭无声音解决方案 * 可能是默认设备被修改,具体操作如下: * 打开我的电脑-右击属性-打开控制面板-打开声音- 点击扬 ...

  7. ALSA (高级Linux声音架构)、ASOC基础知识

    目录 第一节:什么是ALSA和ASOC 第二节:ALSA框架 第三节:ALSA的使用 第四节:ASOC的硬件框架 第四节:ASOC的软件框架 第一节:什么是ALSA和ASOC ALSA是Advance ...

  8. Android中使用自带TextToSpeech实现语音合成时Pico TTS引擎不能播放中文怎样解决

    场景 Android中使用自带TextToSpeech实现离线语音合成功能: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/109 ...

  9. android的发音功能实现,为Android TTS引擎指定发音的最佳做法?

    一般来说,我对Android的默认文字引擎(即com.svox.pico)印象深刻.正如预期的那样,它误导了一些话(像我一样),因此偶尔需要一些发音指导.所以我想知道最好的做法,用于语音拼写出微软TT ...

最新文章

  1. SSL/TLS 协议详解
  2. activeMQ 填坑记
  3. 哪里不知道“瞄”哪里,这项AI黑科技,打开手机就能体验
  4. oracle数据库详细性能参数,ORACLE数据库性能参数的优化
  5. 构建 RESTful Web 服务
  6. python在sql添加数据库_使用Python创建MySQL数据库实现字段动态增加以及动态的插入数据...
  7. 使用Moles框架实现HttpWebRequest与HttpWebResponse的单元测试
  8. 国产服务器芯片对比分析,影速分析:通过国内云主机评测对比国内服务器异同...
  9. endp 汇编start_飞思卡尔Kinetis L 汇编语言启动文件startup_MK25Z4简单分析
  10. odd raio值 是什麼_NBA2K20球员能力值又一次更新!
  11. C++ 整型长度的获取 不同的系统
  12. linux之sed使用
  13. js事件循环机制-宏任务微任务
  14. js 计算 往前(后)几天(月、年)
  15. Android蓝牙通讯(服务端、客户端)
  16. 障碍物参考线交通规则融合器:Frame类
  17. “打酱油”的意思:不关我的事,我只…
  18. DBC文件解析,基于致远电子DBC_demo
  19. 《阿里云服务器教程2》:如何远程连接linux系统阿里云服务器ECS
  20. 【Visual C++】游戏开发笔记四十二 浅墨DirectX教程之十 游戏输入控制利器 DirectInput专场

热门文章

  1. LeetCode+ 16 - 20 双指针、排序|暴搜、递归|双指针、排序|链表|栈、字符串
  2. Versa Networks在贝莱德领导的首次公开募股前融资中获得1.2亿美元融资,以利用快速增长的SASE市场
  3. ubuntu Linux16.04查看硬盘通电时间
  4. clsq客户端android,AutoJs4.1.0 基本介绍
  5. ENVI教程:InSAR技术,自适应滤波及相干性
  6. osgEarth的Rex引擎原理分析(九十五)地形变形(Terrain morphing)
  7. 实验十二AODV和DSR协议仿真实验
  8. UG编程中的安全高度和起始高度含义
  9. 最新虚幻5引擎(UE5)游戏性能的影响详解
  10. 不借助第三方变量交换两个变量的值(多种方法)