2013-06-04 12 views
5

Próbuję sprawdzić, czy Google TTS Engine dostarczony z moim telefonem z Androidem jest zainstalowany jako domyślny fabrycznie ze wszystkimi telefonami z Androidem, które go obsługują? Nie jestem pewien, na co zwrócić uwagę, żeby to zrozumieć, więc moim planem jest pójść do Softbanku, sprzedawcy i zapytać. Czuję, że to pytanie, na które nie będą w stanie odpowiedzieć.Czy Google TTS Engine działa na wszystkich telefonach z systemem Android i skąd mogę go pobrać?

Powiedziano mi, że galaktyki nie pochodzą z Google TTS, w szczególności; więc każdy z galaktyką może przynajmniej ustawić mnie na tym ...

Zastanawiam się również, w jaki sposób mogę uzyskać pakietową wersję Google TTS Engine? Nie mogę go znaleźć w Sklepie Play. Najlepsze, co udało mi się znaleźć, znalazłem, patrząc na licencję (te słodkie małe rzeczy zawsze mają nazwy programistów i witryny). Więc to jest silnik HTS, używając HMM, prawda? Ale nie mogę znaleźć pakietu dla Androida na ich stronie internetowej. Następnym krokiem jest skontaktowanie się z programistą, a obecnie mam przetestowane przetłumaczone tłumaczenie e-maili (mam nadzieję, że znajdę własną odpowiedź i opublikuję ją).

Wszelkie informacje będą bardzo mile widziane.

+0

Możesz sprawdzić programowo, a następnie zainstalować, jeśli silnik nie istnieje. –

+0

Dlaczego tego potrzebujesz? Nie jest dystrybuowany osobno i prawdopodobnie zależy od niektórych zastrzeżonych danych i/lub usług internetowych. Jeśli chcesz go używać na swoim urządzeniu, prawdopodobnie musisz je licencjonować od Google. W każdym razie nie jest to właściwie pytanie programistyczne. –

+0

@HoanNguyen Ale nie wiem, skąd wziąć pliki binarne. –

Odpowiedz

4

Nie sądzę przyjętą odpowiedź jest rzeczywiście poprawna. Ten kod nie sprawdza, czy zainstalowany jest silnik Google TTS. Po prostu uruchamia zamiar, że silniki TTS generalnie odpowiadają na pytanie, czy dane TTS są zainstalowane.

Jeśli nie zainstalowano żadnego aparatu TTS, można uzyskać FC spowodowany wyjątkiem typu ActivityNotFoundException Jeśli masz inny silnik TTS (np. Pico), to odpowie i sprawdzi dane. Jeśli masz więcej niż jeden silnik TTS, zapyta Cię, który silnik TTS chcesz zamiar pracować.

Zamiast tego należy sprawdzić nazwę pakietu w menedżerze pakietów. Ten kod sprawdza 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 jest zastrzeżonym pakietem opracowanym przez Google i jest dostępny na większości urządzeń (szczególnie na urządzeniach Nexus) od czasu, gdy ICS [potrzebne źródło]. Jest to część opracowanych przez Google aplikacji, takich jak Sklep Google Play, Mapy Google, Google+, Gmail, YouTube, wyszukiwarka Google, Muzyka Google Play, Książki Google Play i wiele innych. Nie wszystkie z nich można pobrać ze Sklepu Play.

O ile mogę powiedzieć, nie można tego mieć, chyba że Google zdecyduje się udostępnić go jako open source i publicznie dostępny. Jak już wspomniano, Google TTS używa poprawki HTS (nie jest to sam silnik) dla HTK (znam ją również ze strony licencji), która jest wydana na licencji Modified BSD. To znaczy, możesz nigdy nie być w stanie uzyskać kopii silnika.

Jeśli chcesz opracować silnik TTS, polecam rzucić okiem na silnik PICO TTS, którego kod źródłowy jest dostępny pod numerem AOSP repository.

+0

Przeczytaj inne odpowiedzi. Już to przeżyliśmy. –

+0

Ale dzięki za AOSP. :) –

2

Kod ten będzie sprawdzić, czy jest zainstalowany TextToSpeech a jeśli nie iść do sklepu, aby pobrać google

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; 

} 
Powiązane problemy