java - 合成到音频文件时 TTS.speechRate() 会影响吗?
问题描述
我有两种方法,setSpeechRate(Float value)
和public int synthesizeToFile(final CharSequence text, final Bundle params, final File file, final String utteranceId)
,我希望能找到一种方法以不同的语速合成这些文件。
因此,第一步是调用 to setSpeechRate(4.0f)
(返回0
or SUCCESS
)。但是,当我将 合成String
到同一个文件中Text-to-Engine
,并使用它播放时MediaPlayer
,我无法比默认值更快地播放它speechRate = 1
。
我希望,由于speechRate
实际更新为4.0
,因此生成的文件也将具有相同的速率。我错过了什么?
解决方案
根据docs, setSPeechRate 对“预先录制的语音”没有影响。这是一个奇怪且令人困惑的单词选择,但我假设“预先录制”是指使用 synthesizeToFile 创建的语音。
这是有道理的,因为较慢的语音会导致文件很大,并且很难以不同的速度播放同一个文件。
所以看起来你必须使用播放器来控制语速。
推荐阅读
- c++ - 确保派生类至少实现抽象类(C++)的两种方法之一
- c# - 如何确定我的 C# 测试依赖于哪些文件?
- java - 如何处理 Rest 服务的父子关系
- authentication - 为什么微软提供“当前用户\个人\证书”和“本地计算机\个人\证书”证书?
- javascript - 柱形图问题,柱高不正确
- html - 如何在 Div 中添加超链接并使其可点击?
- azure - DocumentFormat.openxml 似乎不适用于 Azure 函数
- javascript - 将字符串格式数组加载到数组中
- html - ERR_NAME_NOT_RESOLVED 使用 fontawesome
- flutter - Flutter升级后未配置Dart SDK