Thứ Tư, 10 tháng 7, 2013

Tìm hiểu tính năng Text-to-Speech (TTS) trong Android và một vài ứng dụng thực tế

Tinhte_tts_1

Tính năng chuyển văn bản thành giọng nói (Text-to-speech hay TTS) được Google trang bị sẵn cho hệ điều hành Android từ phiên bản 1.6 Donut. Tính năng rất hữu ích trong nhiều trường hợp, đặc biệt đối với các phần mềm từ điển, giúp cho bạn có thể nghe phát âm của từ một cách đơn giản, ngoài ra một số phần mềm khác có thể đọc giúp bạn nội dung đang hiển thị trên màn hình, đọc tin nhắn hay số điện thoại đang gọi, hướng dẫn chỉ đường bằng giọng nói... Chỉ có một vài phần mềm trên Android tự xây dựng cơ sở dữ liệu phát âm và giải thuật riêng của mình, còn phần lớn đều dựa vào dịch vụ có sẵn của Google để chuyển văn bản thành giọng nói.
Để có thể làm tốt công việc chuyển văn bản thành giọng nói thì cần rất nhiều những thao tác xử lý chạy bên dưới mỗi khi nhận được một nội dung ở đầu vào, với Google thì họ ưu tiên xử lý tất cả trên server rồi mới trả kết quả về điện thoại của bạn. Cách làm này nhằm giảm bớt dung lượng lưu trữ vì chắc chắn một điều là cơ sở dữ liệu là khá lớn, ưu tiên dung lượng và chúng ta phải hi sinh một chút về kết nối internet, dịch vụ này luôn yêu cầu có internet (3G hoặc wifi) mới có thể chạy được. Ngoài ra bạn có thể cài đặt dịch vụ TTS khác để sử dụng mà không cần dự vào Google, cách làm mình sẽ nói ở bên dưới đây.

Bạn có thể tìm thấy phần tuỳ chỉnh của tính năng này trong Settings -> Accessibility -> Text-to-speech output. Mặc định sẽ luôn có lựa chọn Google Text-to-speech Engine ở đây, tuỳ từng hãng điện thoại mà có hay không có thêm các lựa chọn khác, ví dụ như Samsung có phát triển hệ thống riêng của mình và ở đây thì luôn có thêm lựa chọn khác của Samsung.

Tinhte_tts_2

Mặc định thì voice data (giọng eng) đã được cài sẵn, vì thế lựa chọn Install voice data chỉ hữu ích khi bạn muốn cài thêm giọng khác như Đức, Tây Ban Nha, Pháp hay Ý. Như đã nói ở trên, tất cả dữ liệu đều được Goolge xử lý trên server nên voice data của họ có dung lượng khá nhỏ, chỉ khoảng vài MB.

Có một điểm hơi khó chịu là giọng của Google Voice không thực sự tốt, nhiều khi khó nghe và nó có hơi hướm của máy nhiều quá. Thật tốt là Text-to-speech out có chấp nhận engine của hãng thứ 3, vì thế bạn có thể cài thêm các dữ liệu khác vào để sử dụng. Trên Android hiện tại có 2 hãng làm khá tốt đó là SVOX với Classic Text To Speech EngineIVONA với IVONA Text-to-Speech HQ. Mình lựa chọn IVONA vì hiện tại phần mềm này đang miễn phí và chất lượng rất tốt, khả năng phát âm tự nhiên và dễ nghe.
Tinhte_tts_3

Sau khi đã cài đặt được bộ phát âm mới thì bạn có thể ứng dụng nó được rồi. Text To Speech Engine không phải là phần mềm cụ thể mà nó sẽ được các ứng dụng khác sử dụng lại, để phát âm mỗi khi cần thiết, như trong từ điển, mỗi khi cần phát âm 1 từ vựng thì phần mềm từ điển đó sẽ nhờ vào TTS. Sau khi cài đặt IVONA thì phần mềm này cũng có kèm theo 1 phần mềm nho nhỏ cho bạn test âm thanh và cũng có thể dùng ngay phần mềm đó để đánh vào từ khoá cần nghe.
Dưới đây có 2 phần mềm khá hay giúp bạn có thể học tiếng anh đơn giản. Đầu tiên là phần mềm Say2Me được bạn @thanhtaivtt giới thiệu trong topic Ứng dụng nhỏ giúp luyện nói tiếng Anh. Ứng dụng tập trung vào luyện nói cho người dùng bằng đưa ra đề bài, lắng nghe người dùng đọc và đưa ra kết quả người dùng đọc có chính xác hay chưa nhờ vào hệ thống nhận dạng giọng nói của Google – Android. Ứng dụng bao gồm hơn 1400 câu giao tiếp hằng ngày. Trong đó, có hơn 300 câu phát âm của người bản xứ, còn lại phát âm dựa vào hệ thông Text to Speech (TTS) của Android được chia thành nhiều cấp độ khác nhau từ dễ đến khó.

Tinhte_tts_4

Ứng dụng thứ 2 mà mình muốn nói đến là Text to Speech(TTS) Controller (link tải về). Một ứng dụng rất nhỏ, có tính năng phát âm từ được đánh vào, ngoài ra có thể save phần âm thanh đó thành file. Rất thích hợp để bạn lập bộ từ tiếng anh và nghe đi nghe lại hàng ngày.

Tinhte_tts_5