其他分享
首页 > 其他分享> > Android文字转语音API听起来机器人

Android文字转语音API听起来机器人

作者:互联网

我是第一次学习android开发,我的目标是创建一个简单的Hello World应用程序,它接收一些文本,并大声读出它们.

我的代码基于我找到的一个例子,这是我的代码:

class MainFeeds : AppCompatActivity() {


    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main_feeds)



        card.setOnClickListener{
            Toast.makeText(this, "Hello", Toast.LENGTH_LONG).show()
            TTS(this, "Hello this is leo")
        }
    }

}


class TTS(private val activity: Activity,
          private val message: String) : TextToSpeech.OnInitListener {

          private val tts: TextToSpeech = TextToSpeech(activity, this, "com.google.android.tts")

    override fun onInit(i: Int) {
        if (i == TextToSpeech.SUCCESS) {

            val localeUS = Locale.US

            val result: Int
            result = tts.setLanguage(localeUS)

            if (result == TextToSpeech.LANG_MISSING_DATA || result == TextToSpeech.LANG_NOT_SUPPORTED) {
                Toast.makeText(activity, "This Language is not supported", Toast.LENGTH_SHORT).show()
            } else {
                speakOut(message)
            }

        } else {
            Toast.makeText(activity, "Initilization Failed!", Toast.LENGTH_SHORT).show()
        }
    }

    private fun speakOut(message: String) {
        tts.speak(message, TextToSpeech.QUEUE_FLUSH, null, null)
    }
}

它运行得非常好,我遇到的问题是合成器发出的音频听起来非常机器人,几乎就像我使用谷歌地图时我从互联网断开连接.使用语音Google智能助理会利用我必须启用的其他一些API吗?

编辑:我已经尝试在我的像素2xl上运行应用程序,它仍然听起来像机器人,因为它没有使用谷歌助理语音.

解决方法:

语音质量首先归结为您创建的TextToSpeech对象使用的“语音引擎”:

private val tts: TextToSpeech = TextToSpeech(activity, this)

如果您输入了:

private val tts: TextToSpeech = TextToSpeech(activity, this, "com.google.android.tts")

然后,您运行该代码的任何设备都将尝试使用Google语音引擎…但只有在设备上存在时才会实际使用它.

同样,使用“com.samsung.SMT”将尝试使用三星语音引擎(它也是高质量的,但通常只安装在三星[真实]设备上).

Google语音引擎是否可用并不是很依赖于设备的Android API级别(只要它最近足以运行Google引擎),而是实际的Google文本到语音引擎完全安装在设备上.

要确保安装了Google引擎:

在Android Studio模拟器上:

创建新的模拟器,然后在“目标”列中选择具有“Google API”或“Google Play”的系统映像.

在真实的设备上:

转到Play商店并安装Google speech engine.

我正在编写一个“TTS诊断”应用程序,我将在Github准备好后发布.我已经了解到Android上的TTS(或至少试图预测其行为)可能是一个真正的野兽.

另外我建议文档,当然:Java | Kotlin.

标签:android,text-to-speech,google-text-to-speech,speech-synthesis,voice
来源: https://codeday.me/bug/20190930/1836272.html