Most visited

Recently visited

Added in API level 14

TextToSpeechService

public abstract class TextToSpeechService
extends Service

java.lang.Object
   ↳ android.content.Context
     ↳ android.content.ContextWrapper
       ↳ android.app.Service
         ↳ android.speech.tts.TextToSpeechService


TTS引擎实现的抽象基类。 需要实施以下方法:

The first three deal primarily with language management, and are used to query the engine for it's support for a given language and indicate to it that requests in a given language are imminent. onSynthesizeText(SynthesisRequest, SynthesisCallback) is central to the engine implementation. The implementation should synthesize text as per the request parameters and return synthesized data via the supplied callback. This class and its helpers will then consume that data, which might mean queuing it for playback or writing it to a file or similar. All calls to this method will be on a single thread, which will be different from the main thread of the service. Synthesis must be synchronous which means the engine must NOT hold on to the callback or call any methods on it after the method returns. onStop() tells the engine that it should stop all ongoing synthesis, if any. Any pending data from the current synthesis will be discarded. onGetLanguage() is not required as of JELLYBEAN_MR2 (API 18) and later, it is only called on earlier versions of Android. API Level 20 adds support for Voice objects. Voices are an abstraction that allow the TTS service to expose multiple backends for a single locale. Each one of them can have a different features set. In order to fully take advantage of voices, an engine should implement the following methods: The first three methods are siblings of the onGetLanguage(), onIsLanguageAvailable(String, String, String) and onLoadLanguage(String, String, String) methods. The last one, onGetDefaultVoiceNameFor(String, String, String) is a link between locale and voice based methods. Since API level 21 setLanguage(Locale) is implemented by calling setVoice(Voice) with the voice returned by onGetDefaultVoiceNameFor(String, String, String). If the client uses a voice instead of a locale, SynthesisRequest will contain the requested voice name. The default implementations of Voice-related methods implement them using the pre-existing locale-based implementation.

Summary

Inherited constants

From class android.app.Service
From class android.content.Context
From interface android.content.ComponentCallbacks2

Public constructors

TextToSpeechService()

Public methods

IBinder onBind(Intent intent)

将通信信道返回给服务。

void onCreate()

服务第一次创建时由系统调用。

void onDestroy()

由系统调用以通知服务它已不再使用并正在被删除。

String onGetDefaultVoiceNameFor(String lang, String country, String variant)

返回给定语言环境的默认语音的名称。

List<Voice> onGetVoices()

查询服务以获取一组支持的声音。

int onIsValidVoiceName(String voiceName)

检查引擎是否支持具有给定名称的语音。

int onLoadVoice(String voiceName)

通知引擎它应该加载语音合成语音。

Protected methods

Set<String> onGetFeaturesForLanguage(String lang, String country, String variant)

查询服务以获取给定语言支持的一组功能。

abstract String[] onGetLanguage()

返回TTS引擎当前正在使用的语言,国家和变体。

abstract int onIsLanguageAvailable(String lang, String country, String variant)

检查引擎是否支持给定的语言。

abstract int onLoadLanguage(String lang, String country, String variant)

通知引擎它应该加载语音合成语言。

abstract void onStop()

通知服务它应该停止正在进行的语音合成。

abstract void onSynthesizeText(SynthesisRequest request, SynthesisCallback callback)

告诉服务合成来自给定文本的语音。

Inherited methods

From class android.app.Service
From class android.content.ContextWrapper
From class android.content.Context
From class java.lang.Object
From interface android.content.ComponentCallbacks2
From interface android.content.ComponentCallbacks

Public constructors

TextToSpeechService

Added in API level 14
TextToSpeechService ()

Public methods

onBind

Added in API level 14
IBinder onBind (Intent intent)

将通信信道返回给服务。 如果客户端无法绑定到服务,可能会返回null。 返回IBinder通常是一个复杂的界面已经described using aidl

请注意,与其他应用程序组件不同,此处返回的IBinder接口调用可能不会发生在进程的主线程上 有关主线程的更多信息可以在Processes and Threads中找到。

Parameters
intent Intent: The Intent that was used to bind to this service, as given to Context.bindService. Note that any extras that were included with the Intent at that point will not be seen here.
Returns
IBinder Return an IBinder through which clients can call on to the service.

onCreate

Added in API level 14
void onCreate ()

服务第一次创建时由系统调用。 不要直接调用这个方法。

onDestroy

Added in API level 14
void onDestroy ()

由系统调用以通知服务它已不再使用并正在被删除。 这个服务应该清理它所拥有的任何资源(线程,注册接收者等)。 返回后,将不会有更多的调用这个服务对象,它实际上已经死了。 不要直接调用这个方法。

onGetDefaultVoiceNameFor

Added in API level 21
String onGetDefaultVoiceNameFor (String lang, 
                String country, 
                String variant)

返回给定语言环境的默认语音的名称。 此方法提供区域设置和可用语音之间的映射。 此方法用于setLanguage(Locale) ,该方法调用此方法,然后用此方法返回的语音调用setVoice(Voice) 另外, getDefaultVoice()使用它来查找默认语言环境的默认语音。

Parameters
lang String: ISO-3 language code.
country String: ISO-3 country code. May be empty or null.
variant String: Language variant. May be empty or null.
Returns
String A name of the default voice for a given locale.

onGetVoices

Added in API level 21
List<Voice> onGetVoices ()

查询服务以获取一组支持的声音。 可以在多个线程上调用。 默认实现尝试枚举所有可用的区域设置,将它们传递到onIsLanguageAvailable(String, String, String)并创建语音实例(使用语言环境的BCP-47语言标记作为语音名称)以支持所有可用的语言环境。 请注意,此实现仅适用于针对单个语言环境没有多个声音的引擎。 此外,此实现不适用于未在getAvailableLocales()方法返回的集合中列出的语言环境。

Returns
List<Voice> A list of voices supported.

onIsValidVoiceName

Added in API level 21
int onIsValidVoiceName (String voiceName)

检查引擎是否支持具有给定名称的语音。 可以在多个线程上调用。 默认实现将语音名称视为语言标记,从语音名称创建语言环境,并将其传递到onIsLanguageAvailable(String, String, String)

Parameters
voiceName String: Name of the voice.
Returns
int ERROR or SUCCESS.

onLoadVoice

Added in API level 21
int onLoadVoice (String voiceName)

通知引擎它应该加载语音合成语音。 无法保证在语音用于合成之前始终调用此方法。 这仅仅是引擎的一个暗示,它可能会在未来某个时候获得对这个声音的综合请求。 将仅在合成线程上调用。 默认实现从语音名称创建语言环境(通过将名称解释为语言环境的BCP-47标记),并将其传递到onLoadLanguage(String, String, String)

Parameters
voiceName String: Name of the voice.
Returns
int ERROR or SUCCESS.

Protected methods

onGetFeaturesForLanguage

Added in API level 15
Set<String> onGetFeaturesForLanguage (String lang, 
                String country, 
                String variant)

查询服务以获取给定语言支持的一组功能。 可以在多个线程上调用。

Parameters
lang String: ISO-3 language code.
country String: ISO-3 country code. May be empty or null.
variant String: Language variant. May be empty or null.
Returns
Set<String> A list of features supported for the given language.

onGetLanguage

Added in API level 14
String[] onGetLanguage ()

返回TTS引擎当前正在使用的语言,国家和变体。 此方法仅在Android 4.2和之前(API <= 17)之间调用。 在以后的版本中,这个方法不会被Android TTS框架调用。 可以在多个线程上调用。

Returns
String[] A 3-element array, containing language (ISO 3-letter code), country (ISO 3-letter code) and variant used by the engine. The country and variant may be "". If country is empty, then variant must be empty too.

也可以看看:

onIsLanguageAvailable

Added in API level 14
int onIsLanguageAvailable (String lang, 
                String country, 
                String variant)

检查引擎是否支持给定的语言。 可以在多个线程上调用。 它的返回值必须与onLoadLanguage一致。

Parameters
lang String: ISO-3 language code.
country String: ISO-3 country code. May be empty or null.
variant String: Language variant. May be empty or null.
Returns
int Code indicating the support status for the locale. One of LANG_AVAILABLE, LANG_COUNTRY_AVAILABLE, LANG_COUNTRY_VAR_AVAILABLE, LANG_MISSING_DATA LANG_NOT_SUPPORTED.

onLoadLanguage

Added in API level 14
int onLoadLanguage (String lang, 
                String country, 
                String variant)

通知引擎它应该加载语音合成语言。 不能保证在语言用于合成之前总是调用此方法。 这仅仅是引擎的一个暗示,它可能会在未来的某个时候获得这种语言的综合请求。 可以在多个线程上调用。 在<= Android 4.2(<= API 17)中可以在主要和服务联编程序线程上调用。 在> Android 4.2(> API 17)可以在主线程和综合线程上调用。

Parameters
lang String: ISO-3 language code.
country String: ISO-3 country code. May be empty or null.
variant String: Language variant. May be empty or null.
Returns
int Code indicating the support status for the locale. One of LANG_AVAILABLE, LANG_COUNTRY_AVAILABLE, LANG_COUNTRY_VAR_AVAILABLE, LANG_MISSING_DATA LANG_NOT_SUPPORTED.

onStop

Added in API level 14
void onStop ()

通知服务它应该停止正在进行的语音合成。 即使没有语音合成进行中,也可以调用此方法。 可以在多个线程上调用,但不能在综合线程上调用。

onSynthesizeText

Added in API level 14
void onSynthesizeText (SynthesisRequest request, 
                SynthesisCallback callback)

告诉服务合成来自给定文本的语音。 该方法应该阻塞直到合成结束。 用于来自V1客户的请求( TextToSpeech )。 在综合线程上调用。

Parameters
request SynthesisRequest: The synthesis request.
callback SynthesisCallback: The callback that the engine must use to make data available for playback or for writing to a file.

Hooray!