nativescript-texttospeech-enduco
by j4rv1s | v1.0.10
适用于 Android 和 iOS 的文本到语音 NativeScript 插件
npm i --save nativescript-texttospeech-enduco

npm npm Build Status

NativeScript-TextToSpeech :loudspeaker

适用于 Android 和 iOS 的文本到语音 NativeScript 插件

原生控件

安装

从项目的根目录运行以下命令

$ tns plugin add nativescript-texttospeech

此命令将自动安装必要的文件,并在您的项目 package.json 文件中将 nativescript-texttospeech 设置为依赖项。

视频教程

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 **
    • 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