Android'de kendi TTS uygulamalarını geliştirdim. TTS motorumu TTS uygulamalarını çalıştırmak yerine işletim sistemine dağıtmanın herhangi bir yolu var mı? Böylece diğer uygulamalar TTS'imi arayabilir mi? MS Window'da SAPI gibi bir şey. SVOX, motoru apk olarak paketleyebilir ve kurulduktan sonra, Andorid işletim sistemine yeni motorlar ekleyebilir, aynı şeyi nasıl yapacağımı bilmiyorum.TTS motorumu Android'e ekle TTS Serivce gibi SAPI
cevap
Metinden konuşmaya çalışan motorunuzun kullanılabilir hizmetler listesinde görünmesi için, uygun etkinlikleri ve bildirim girişlerini eklemeniz gerekir.
API 14 içinve üzeri, sen TextToSpeechService uzatmak gerekiyor ve Bildiriminize aşağıdakileri ekleyin gerekir:
<service
android:name=".MyTextToSpeechService"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.TTS_SERVICE" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
<meta-data
android:name="android.speech.tts"
android:resource="@xml/tts_engine" />
</service>
Bu referanslar res gibi görünmelidir/xml/tts_engine.xml:
Ayrıca, çeşitli destekleyici etkinlikler eklemeniz gerekir. Burada Bildiriminize eklersiniz budur:
<activity
android:name=".DownloadVoiceData"
android:theme="@android:style/Theme.Dialog" >
<intent-filter>
<action android:name="android.speech.tts.engine.INSTALL_TTS_DATA" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<activity
android:name=".CheckVoiceData"
android:theme="@android:style/Theme.Translucent.NoTitleBar" >
<intent-filter>
<action android:name="android.speech.tts.engine.CHECK_TTS_DATA" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<activity
android:name=".GetSampleText"
android:theme="@android:style/Theme.Translucent.NoTitleBar" >
<intent-filter>
<action android:name="android.speech.tts.engine.GET_SAMPLE_TEXT" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<activity
android:name=".TtsSettingsActivity"
android:label="@string/tts_settings_label" >
<intent-filter>
<action android:name="android.speech.tts.engine.CONFIGURE_ENGINE" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<!-- Legacy code for pre-ICS compatibility. -->
<activity
android:name=".MyTtsEngine"
android:label="@string/app_name"
android:theme="@android:style/Theme.Translucent.NoTitleBar" >
<intent-filter>
<action android:name="android.intent.action.START_TTS_ENGINE" />
</intent-filter>
</activity>
<provider
android:name="com.googlecode.eyesfree.espeak.providers.SettingsProvider"
android:authorities="com.googlecode.eyesfree.espeak.providers.SettingsProvider" />
Android'in ICS öncesi sürümlerini destekleyen planlıyorsanız, ayrıca belirli bir API uyan paylaşılan kitaplık gerekir.
Burada her bir faaliyetin uygulanması ayrıntılarına girmeye veya ICS öncesi API içine ama eSpeak TTS motorunun Android limanı için kaynak kodunda örnek bulabilirsiniz olmaz: http://code.google.com/p/eyes-free/source/browse/trunk/tts/espeak-tts/