如何在React-Native中将文本转换为语音?

时间:2017-11-28 10:45:40

标签: android ios react-native

如何在本地TTS 中将文字转换为语音应该是实时动态文字。

1 个答案:

答案 0 :(得分:10)

<强>用法

<强>进口

import Tts from 'react-native-tts';

<强>说到

将话语添加到TTS队列并开始说话。使用utteranceId返回promise。

Tts.speak('Hello, world!');

停止说话并刷新TTS队列。

Tts.stop();

<强>闪避

启用时启用降低其他应用程序输出级别(也称为

as“ducking”)。

Tts.setDucking(true);

列出语音

返回可用语音列表

(Android API等级不支持&lt; 21,返回空列表)

Tts.voices().then(voices => console.log(voices));

//打印: // // [{id:'com.apple.ttsbundle.Moira-compact',名称:'Moira',语言:'en-IE'}, // ... // {id:'com.apple.ttsbundle.Samantha-compact',名称:'Samantha',语言:'en-US'}]

设置默认语言

Tts.setDefaultLanguage('en-IE');

设置默认语音

设置默认语音,通过调用

报告的一个voiceId
Tts.voices()

(不适用于Android API等级&lt; 21)

Tts.setDefaultVoice('com.apple.ttsbundle.Moira-compact');

设置默认语音费率

设置默认语速。 rate参数是一个浮点数,其中0.01是最慢的速率,0.99是最快的速率。

Tts.setDefaultRate(0.6);

iOS解释费率值的方式存在显着差异

和Android原生TTS API。为了提供统一的跨平台行为,

翻译适用于费率值。但是,如果要关闭

翻译,您可以提供可选的skipTransform参数

Tts.setDefaultRate()未经修改地通过费率值。

不要翻译费率参数:

Tts.setDefaultRate(0.6, true);

设置默认音高

设置默认音高。 pitch参数是一个浮点数,其中1.0是正常值

节距。在iOS上,最小间距为0.5,最大间距为2.0

Tts.setDefaultPitch(1.5);

<强>事件

订阅TTS活动

Tts.addEventListener('tts-start', (event) => console.log("start", event));

Tts.addEventListener('tts-finish', (event) => console.log("finish", event));

Tts.addEventListener('tts-cancel', (event) => console.log("cancel", event));