2013-06-04 65 views
5

Tôi đang cố gắng tìm hiểu xem Công cụ TTS của Google đi kèm với điện thoại Android của tôi có được cài đặt làm mặc định của nhà máy với tất cả các điện thoại Android có hỗ trợ không? Tôi không chắc chắn loại tài liệu tham khảo nào để xem xét điều này, vì vậy kế hoạch của tôi là đến Softbank, một nhà bán lẻ và hỏi. Tôi cảm thấy đó là một câu hỏi mà họ sẽ không thể trả lời, mặc dù.Công cụ TTS của Google trên tất cả các điện thoại Android và tôi có thể lấy nó ở đâu?

Tôi đã được thông báo rằng các thiên hà không đi kèm với Google TTS, cụ thể; vì vậy, bất kỳ ai có Galaxy ít nhất có thể đặt tôi trực tiếp về điều đó ....

Tôi cũng tự hỏi, làm cách nào để có phiên bản đóng gói của Công cụ TTS của Google? Tôi không thể tìm thấy nó trên Cửa hàng Play. Tốt nhất tôi có thể tìm thấy được tìm thấy bằng cách nhìn vào giấy phép (những điều nhỏ ngọt ngào luôn có tên và trang web của nhà phát triển). Vậy, đó là động cơ HTS, sử dụng HMM, phải không? Nhưng tôi không thể tìm thấy một gói cho Android trên trang web của họ. Bước tiếp theo của tôi là liên hệ với nhà phát triển và tôi hiện đang đọc bản dịch bằng e-mail đã dịch (hy vọng, tôi có thể tìm thấy câu trả lời của riêng tôi và đăng lên).

Mọi thông tin sẽ được đánh giá cao.

+0

Bạn có thể kiểm tra theo chương trình và sau đó cài đặt nếu động cơ không tồn tại. –

+0

Tại sao bạn cần nó? Nó không được phân phối riêng biệt và có thể phụ thuộc vào một số dữ liệu độc quyền và/hoặc Dịch vụ web. Nếu bạn muốn sử dụng nó cho thiết bị của mình, bạn có thể cần phải cấp phép cho nó từ Google. Trong mọi trường hợp, không chính xác là một câu hỏi lập trình. –

+0

@HoanNguyen Nhưng tôi không biết nơi để lấy các tập tin nhị phân. –

Trả lời

4

Tôi không nghĩ rằng câu trả lời được chấp nhận là thực sự chính xác. Mã này không kiểm tra xem công cụ Google TTS đã được cài đặt chưa. Nó chỉ khởi động một ý định rằng các công cụ TTS nói chung trả lời hỏi xem liệu dữ liệu TTS cho chúng có được cài đặt hay không.

Nếu không có động cơ TTS nào được cài đặt, bạn có thể bị FC do ngoại lệ của loại ActivityNotFoundException. Nếu bạn có động cơ TTS khác (như pico), nó sẽ phản hồi và kiểm tra dữ liệu của nó. Nếu bạn có nhiều hơn một động cơ TTS, nó sẽ hỏi bạn động cơ TTS nào bạn muốn ý định làm việc.

Thay vào đó, bạn nên kiểm tra tên gói trong trình quản lý gói. Mã này kiểm tra cho 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 là gói độc quyền do Google phát triển và có sẵn ở hầu hết các thiết bị (đặc biệt là trên thiết bị Nexus) kể từ ICS [cần dẫn nguồn]. Nó là một phần của các ứng dụng được phát triển của Google bao gồm Cửa hàng Google Play, Google Maps, Google+, Gmail, YouTube, Google Tìm kiếm, Google Play Âm nhạc, Google Play Sách và nhiều ứng dụng khác. Không phải tất cả chúng đều có sẵn để tải xuống từ Cửa hàng Play.

Theo như tôi có thể nói, bạn không thể có nó trừ khi bằng cách nào đó Google quyết định biến nó thành nguồn mở và có sẵn công khai. Như bạn đã đề cập, Google TTS sử dụng bản vá HTS (không phải là động cơ của chính nó) cho HTK (Tôi cũng biết điều này từ trang giấy phép) được phát hành theo giấy phép BSD đã sửa đổi. Đó là, bạn không bao giờ có thể có được một bản sao của động cơ.

Nếu bạn muốn phát triển động cơ TTS, tôi khuyên bạn nên xem xét công cụ PICO TTS, mã nguồn có sẵn trong AOSP repository.

+0

Vui lòng đọc các câu trả lời khác. Chúng tôi đã vượt qua điều này. –

+0

Cảm ơn AOSP, mặc dù. :) –

2

Mã này sẽ kiểm tra xem TextToSpeech được cài đặt và nếu không đi đến google cửa hàng để tải

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; 

} 
Các vấn đề liên quan