银河麒麟(ubuntu)使用TTS语音

说明

最近在将Windows的系统转向国产系统银河麒麟中遇到了一个问题,在Windows可以使用TTS,但是银河麒麟就不能使用,所以从网上找到了两个解决方案,大家自行选择
英文版:espeak (也能使用中文,但是听上去像是老外在说中文,因此我这边只推荐英文使用它)
中文版:ekho (说中文比较能听懂,但是说英文很别扭,因此我推荐中文选择它)
因为银河麒麟内核和ubuntu相同,所以ubuntu也适用

安装

espeak

  1. 安装espeak
  sudo apt install espeak
  1. 下载数据
  git clone https://github.com/caixxiong/espeak-data/
  1. 进入目录
  cd espeak-data/
  1. 解压包
  unzip espeak-data.zip
  1. 进入目录
  cd espeak-data/
  1. 拷贝文件到原始安装包路径
  sudo cp -r * /usr/lib/x86_64-linux-gnu/espeak-data 
  1. 编译包
  sudo espeak --compile=zh

提示:如果要使用粤语,则继续编译:sudo espeak --compile=zhy

  1. 注意事项
    编译成功后需要把原来下载的espeak-data内容全部删,不然可能报espeak -v zhy 你好 Can't read data file: '/home/loong/espeak-data/phontab' Failed to load espeak-data
  rm -rf espeak-data
  1. 使用方法
  espeak -v zh 你好
  espeak -v  hello

ekho

  1. 安装ekho

下载ekho

  1. 安装依赖
  sudo apt-get install espeak-ng  libespeak-ng-dev  libsndfile1-dev libpulse-dev libncurses5-dev libestools-dev festival-dev libvorbis-dev libmp3lame-dev libdotconf-dev texinfo pulseaudio libpulse-ocaml-dev
  1. 解压包
  tar -xvf ekho-8.6.tar.xz
  1. 进入目录
  cd ekho-8.6
  1. 编译配置
    ps:如果执行make有关于报错g++的需要下载g++,如果没有则继续执行
 ./configure
 make -j4
 sudo make install
  1. 测试
  ekho "你好啊"
  1. 命令行选项
选 项说明
语言-v(‘Cantonese’, ‘Mandarin’, ‘Hakka’, ‘Tibetan’, ‘Ngangien’ and ‘Hangul’) 默认普通话(Cantonese)
导入文件-f路径,输出文件里面的内容
输出文件-o路径,将文字输出到文件中,默认wav
音量高低-p最小-100 最大100
增量速率(这将同时缩放俯仰和速度)-f最小-50 最大100
启动服务器-f启动Ekho TTS服务器。
向Ekho TTS服务器发送请求–request=TEXT向Ekho TTS服务器发送请求。

代码调用

上面使用的都是命令行的方法,其实我们使用自己用的编程语言调用很简单,也是使用代码调用命令行的方式来唤起TTS语音。

例如我使用的是C#

// 使用ekho
 ProcessStartInfo startInfo = new ProcessStartInfo
 {
     FileName = rootCommand,
     Arguments = "ekho -a 30 - s 20",
     UseShellExecute = false,
     RedirectStandardOutput = false,
     CreateNoWindow = true
 };

 using (Process process = Process.Start(startInfo)!)
 {
     process.WaitForExit();
 }

总结

可以根据自己的需求选择使用的方法,灵活变通,每个TTS都有自己的可变性,以及各个配置选项。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值