2016-09-29 44 views
0

我們公司正在爲盲人開發一個全功能的應用程序,這意味着它很大程度上依賴於文本到語音(TTS)。我們注意到TTS語音隨機停止說話。它通常工作正常,我們沒有任何言語問題,但一旦在藍色的月亮中我們沒有語音輸出,應用程序不知道,所以它繼續像往常一樣工作,但沒有任何聲音。用戶仍然可以使用該應用程序的大部分,但他們不再聽到講話,直到應用程序重新啓動,並重置所有內容。什麼是在Android上開發時最可靠的TTS(文本到語音)引擎?

有沒有一種可靠的方法來了解語音是否無法說出什麼?

我已經利用話語完整的聽衆來處理特定的場景,但TTS根本不輸出話音並沒有什麼區別。就好像這個聲音「認爲」它說的那樣,但我們從來沒有聽到過它。

當TTS引擎嘗試說出某些內容但失敗時,是否有可以捕獲的事件?

+0

https://play.google.com/store/apps/details?id=com.ivona.tts – Danieboy

+0

Danieboy,發佈鏈接到IVONA TTS是不是我問的。我不是要求推薦的語音引擎(我們過去已經使用過該語音引擎,並確定它不適合我們的使用)。我要求提供一種說明應該說出的短語是否失敗的方法。 –

+0

誰低估了我的問題和原因? –

回答

0

根據我的經驗,在撰寫本文時,最可靠的TTS引擎是Google自己的。這當然是一個意見問題,而不是Stackoverflow鼓勵的。目前,Google TTS是唯一正確使用最新的Voice API的地方,其他引擎崩潰,失敗或僅僅是錯誤報告。

不幸的是,一個TTS引擎將認爲它已經正確地說出了話語,但沒有。

爲了解決這個問題,當我請求演講時,我設置了一個Runnable,它檢查onDone()是否在相對於演講長度的一段時間內未被調用。我也檢查onDone()是不是叫得太快,這表明講話失敗了,除非這個請求是故意沉默的。

如果出現問題,這兩項檢查可以讓我爲用戶敬酒 - 鑑於您正在處理盲人,您顯然必須找到另一種方式來溝通問題!也許一系列的多次小振動可能會一般地表示一個問題?

希望有所幫助。

+0

感謝您的洞察力。我也認爲Google TTS引擎是最好的選擇,這正是我們目前使用的。這是一件很奇怪的事情,但並不經常發生,但令人沮喪。 雖然您提出的解決此問題的方法可能無法適用於我們的情況,但主要是因爲我們允許用戶控制聲音的音調和速度,所以試圖確定需要花費多長時間才能說出要說的內容將是一項挑戰因爲根據當前的速度設置,說話的速度或速度可能有所不同。 –

+0

@ Sites-For-Less.com如果請求不是用於無聲的話語,那麼'onDone()'的大多數失敗將在150毫秒內。聽起來像一個任意的人物,但來自多年的頭痛..... – brandall

相關問題