在 Android 中使用文字转语音

文本转语音 (TTS)是一种辅助技术,用于将文本转换为合成语音。Text to Speech 是 Android 平台的内置功能。

在布局 XML 文件中,我们添加了EditTextButton元素。用户将能够在字段中键入文本,然后按下按钮,它会听到语音。

app/src/main/res/layout/activity_main.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <EditText
        android:id="@+id/myEditText"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:inputType="text" />

    <Button
        android:id="@+id/myButton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/myEditText"
        android:layout_centerHorizontal="true"
        android:text="Speak" />

</RelativeLayout>

我们初始化TextToSpeech. 如果初始化成功,则我们为语音操作设置美国英语语言环境。通过使用speak()方法,我们将文本转换为合成语音。

app/src/main/java/com/example/app/MainActivity.kt

package com.example.app

import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.speech.tts.TextToSpeech
import android.util.Log
import kotlinx.android.synthetic.main.activity_main.*
import java.util.*

class MainActivity : AppCompatActivity()
{
    private lateinit var tts: TextToSpeech

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

        tts = TextToSpeech(this, TextToSpeech.OnInitListener { status ->
            if (status == TextToSpeech.SUCCESS) {
                tts.language = Locale.US
            } else {
                Log.d("MY_APP", "Initilization failed")
            }
        })

        myButton.setOnClickListener {
            tts.speak(myEditText.text, TextToSpeech.QUEUE_FLUSH, null, null)
        }
    }
}
在 Android 中使用文字转语音

版权声明:本文内容转自互联网,本文观点仅代表作者本人。本站仅提供信息存储空间服务,所有权归原作者所有。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至1393616908@qq.com 举报,一经查实,本站将立刻删除。

(0)

相关推荐

发表回复

登录后才能评论