npm i --save nativescript-texttospeech
- 版本:3.0.1
- GitHub: https://github.com/bradmartin/nativescript-texttospeech
- NPM: https://npmjs.net.cn/package/nativescript-texttospeech
- 下载量
- 昨日:14
- 上周:72
- 上个月:235
NativeScript-TextToSpeech :loudspeaker
适用于 Android & iOS 的文本到语音 NativeScript 插件
原生控件
- Android - TextToSpeech
- iOS - AVSpeechSynthesizer
安装
从您项目的根目录运行以下命令
$ tns plugin add nativescript-texttospeech
此命令将自动安装必要的文件,并将 nativescript-texttospeech 作为依赖项存储在您的项目 package.json 文件中。
视频教程
egghead 课程 @ https://egghead.io/lessons/typescript-using-text-to-speech-with-nativescript
使用方法
/// javascript
var TextToSpeech = require('nativescript-texttospeech');
/// TypeScript
import { TNSTextToSpeech, SpeakOptions } from 'nativescript-texttospeech';
let TTS = new TNSTextToSpeech();
let speakOptions: SpeakOptions = {
text: 'Whatever you like', /// *** required ***
speakRate: 0.5, // optional - default is 1.0
pitch: 1.0, // optional - default is 1.0
volume: 1.0, // optional - default is 1.0
locale: 'en-GB', // optional - default is system locale,
finishedCallback: Function // optional
};
// Call the `speak` method passing the SpeakOptions object
TTS.speak(speakOptions).then(
() => {
// everything is fine
},
err => {
// oops, something went wrong!
}
);
API
-
speak(options: SpeakOptions): Promise<any>
- 使用给定选项开始说话 -
pause(): void
- 暂停说话 -
resume(): void
- 恢复说话 -
destroy(): void
- 释放语音合成器/引擎的资源 -
SpeakOptions = {}
text: string
** 必选 **queue?: boolean = false
pitch?: number = 1.0
speakRate?: number = 1.0
volume?: number = 1.0
locale?: string = default system locale
language?: string = default system language
** Android only **finishedCallback?: Function
如果您希望设置自定义区域设置,您需要提供有效的 BCP-47 代码,例如 en-US
。如果您希望仅设置自定义语言(不包含首选国家/地区代码),您需要提供有效的 ISO 639-1 语言代码。如果两者都设置,则将使用自定义区域设置。
该插件检查提供的区域设置/语言代码是否有正确的语法,但不会阻止设置不存在的代码。请谨慎使用此功能。
仅语言代码的示例
let speakOptions: SpeakOptions = {
text: 'Whatever you like', // *** required ***
language: 'en' // english language will be used
};
使用区域设置的示例
let speakOptions: SpeakOptions = {
text: 'Whatever you like', // *** required ***
locale: 'en-AU' // australian english language will be used
};
提示
- 语音合成器在大多数设备上初始化需要一段时间。一种简单的方法是在演示应用程序中进行测试)是创建新的 TNSTextToSpeech 实例,然后立即调用带有选项对象
text
值 =""
的speak
方法。这将强制合成器“热身”并不说话。现在,当您为应用程序的功能调用speak
方法时,它已经“热身”了合成器,因此延迟应该是最小的。将此“热身”过程放入插件源本身是可能的,我现在没有时间做,但欢迎任何经过良好测试的贡献,使其成为合成器的默认行为。
仅 Android 方法
getAvailableLanguages(): Promise<Array<Language>>;
- 返回一个包含可用语言的数组(用于防止使用不存在语言/区域代码)
鸣谢
受 James Montemagno 的 TextToSpeech Xamarin 插件 启发
感谢 anarchicknight 提供此插件。感谢 stefalda 在暂停/恢复和 finishedCallback 事件上的出色工作 :bomb