2013-06-04 8 views
5

Ich versuche herauszufinden, ob die Google TTS-Engine, die mit meinem Android-Telefon geliefert wurde, mit allen Android-Telefonen, die dies unterstützen, als Werksstandard installiert ist. Ich bin mir nicht sicher, welche Art von Hinweis ich mir ansehen sollte, um das herauszufinden, also ist mein Plan, zum Einzelhändler Softbank zu gehen und zu fragen. Ich denke, es ist eine Frage, die sie nicht beantworten können.Ist die Google TTS Engine auf allen Android-Telefonen installiert und wo bekomme ich sie?

Mir wurde gesagt, dass Galaxien nicht mit Google TTS kommen, speziell; Also, jeder mit einer Galaxy kann mich zumindest direkt darauf einstellen ....

Ich frage mich auch, wie bekomme ich eine gepackte Version der Google TTS Engine? Ich kann es nicht im Play Store finden. Das Beste, was ich finden konnte, wurde durch einen Blick auf die Lizenz gefunden (diese süßen kleinen Dinge haben immer Namen und Websites von Entwicklern). Also, es ist die HTS-Engine, HMM verwendend, richtig? Aber ich kann auf ihrer Website kein Paket für Android finden. Mein nächster Schritt ist, den Entwickler zu kontaktieren, und ich lasse gerade meinen übersetzten E-Mail-Beweis lesen (hoffentlich kann ich meine eigene Antwort finden und es aufstellen).

Alle Informationen würden sehr geschätzt werden.

+0

Sie können programmgesteuert überprüfen und dann installieren, wenn die Engine nicht vorhanden ist. –

+0

Warum brauchen Sie es? Es wird nicht separat verteilt und hängt wahrscheinlich von einigen proprietären Daten und/oder Webdiensten ab. Wenn Sie es für Ihr Gerät verwenden möchten, müssen Sie es wahrscheinlich von Google lizenzieren. In jedem Fall nicht gerade eine Programmierfrage. –

+0

@HoanNguyen Aber ich weiß nicht, wo ich die Binärdateien bekommen soll. –

Antwort

4

Ich glaube nicht, dass die akzeptierte Antwort wirklich korrekt ist. Dieser Code überprüft nicht, ob die Google TTS-Engine installiert ist. Es startet nur eine Absicht, die TTS-Engines im Allgemeinen beantworten, um zu fragen, ob die TTS-Daten für sie installiert sind.

Wenn keine TTS-Engine installiert ist, erhalten Sie möglicherweise eine FC, die durch eine Ausnahme vom Typ ActivityNotFoundException verursacht wurde. Wenn Sie andere TTS-Engine (wie Pico) haben, wird es antworten und seine Daten überprüfen. Wenn Sie mehr als eine TTS-Engine haben, werden Sie gefragt, welche TTS-Engine Sie verwenden möchten.

Sie sollten stattdessen im Paketmanager nach dem Paketnamen suchen. Dieser Code prüft auf SVOX Pico TTS:

public void onCreate(Bundle savedInstanceState){ 
    super.onCreate(savedInstanceState); 
    if(isPackageInstalled(getPackageManager(), "com.svox.pico")){ 
     ttsInstalled = true; // This would be good to have it as a static member 
    } 
} 


public static boolean isPackageInstalled(PackageManager pm, String packageName) { 
     try { 
      pm.getPackageInfo(packageName, 0); 
     } catch (NameNotFoundException e) { 
      return false; 
     } 
     return true; 
} 
1

Google TTS ist ein proprietäres Paket, das von Google entwickelt wurde und in den meisten Geräten (insbesondere auf Nexus-Geräten) seit ICS verfügbar ist. Es ist Teil der von Google entwickelten Apps wie Google Play Store, Google Maps, Google+, Gmail, YouTube, Google Search, Google Play Music, Google Play Books und vielen anderen. Nicht alle sind im Play Store verfügbar.

Soweit ich das beurteilen kann, können Sie es nicht haben, es sei denn, Google beschließt, es öffentlich zugänglich zu machen. Wie Sie bereits erwähnt haben, verwendet Google TTS HTS-Patch (ist keine Engine für sich) für HTK (ich weiß auch dies von der Lizenzseite), die unter der Modified BSD-Lizenz veröffentlicht wird. Das heißt, Sie können möglicherweise nie eine Kopie der Engine erhalten.

Wenn Sie einen TTS-Motor entwickeln möchten, würde ich Ihnen empfehlen, einen Blick auf die PICO TTS-Engine zu werfen, deren Quellcode in AOSP repository verfügbar ist.

+0

Bitte lesen Sie die anderen Antworten. Wir waren darüber hinweg. –

+0

Danke für AOSP, obwohl. :) –

2

Dieser Code prüft, ob TextToSpeech installiert ist und wenn nicht zum Google Store geht zum Download

Intent intent = new Intent(); 
intent.setAction(TextToSpeech.Engine.ACTION_CHECK_TTS_DATA); 
ArrayList<String> languages = new ArrayList<String>(); 
languages.add("eng-USA"); //$NON-NLS-1$ 
intent.putStringArrayListExtra(TextToSpeech.Engine.EXTRA_CHECK_VOICE_DATA_FOR, 
                languages); 
startActivityForResult(intent, REQUEST_TTS_DATA_CHECK_CODE); 

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent intent) 
{ 
    super.onActivityResult(requestCode, resultCode, intent); 

    switch (requestCode) 
    { 
     case REQUEST_TTS_DATA_CHECK_CODE: 
      if (resultCode != TextToSpeech.Engine.CHECK_VOICE_DATA_PASS) 
      { 
       // show Alert Dialog to ask user go to play store to install 
       // When user click OK this is the code to set 
       intent.setAction(TextToSpeech.Engine.ACTION_INSTALL_TTS_DATA); 
       startActivity(intent); 
      } 
      break; 

}