gpt4 book ai didi

android - Espeak 读取单独的字母而不是单词

转载 作者:行者123 更新时间:2023-11-30 00:06:15 39 4
gpt4 key购买 nike

我第一次尝试在下面的代码中使用谷歌默认的TTS引擎,但是我发现,不支持波斯语!

因此,我在手机上下载并安装了 espeak RedZoc TTS 引擎,并将默认的 TTS 语言更改为波斯语。当我在手机设置或 RedZoc 应用程序中检查它时,它运行良好。

但是当我在手机中运行我的代码时,它会单独读取字母而不是读取完整的单词! (例如它应该说 SALAM 但它说 Arabic Sin Lam Alef Mim )

主要 Activity :

package com.m.ttsapp;

import android.content.Intent;
import android.speech.tts.TextToSpeech;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;

import java.util.Locale;

public class MainActivity extends AppCompatActivity
{
String text;
EditText et;
TextToSpeech tts;
Button btn;


@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

et=findViewById(R.id.editText1);
btn = findViewById(R.id.button1);

tts=new TextToSpeech(MainActivity.this, new TextToSpeech.OnInitListener() {


@Override
public void onInit(int status)
{
if(status == TextToSpeech.SUCCESS)
{
int result=tts.setLanguage(Locale.);
if(result==TextToSpeech.LANG_MISSING_DATA || result==TextToSpeech.LANG_NOT_SUPPORTED)
{
Log.e("error", "This Language is not supported");
}
else{
ConvertTextToSpeech();
}
}
else
Log.e("error", "Initilization Failed!");
}
});

btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
ConvertTextToSpeech();

}
});

}

@Override
protected void onPause()
{

if(tts != null)
{

tts.stop();
tts.shutdown();
}
super.onPause();
}


private void ConvertTextToSpeech()
{
text = et.getText().toString();
if(text == null || "".equals(text))
{
text = "Content not available";
tts.speak(text, TextToSpeech.QUEUE_FLUSH, null);
}else
tts.speak(text, TextToSpeech.QUEUE_FLUSH, null);
}


}

我知道也许我必须更改这行代码,但不知道将其更改为什么? int result=tts.setLanguage(Locale.);

或者也许我必须忘记所有这些代码并编写另一个代码?但是如何呢?

最佳答案

没有“内置”Locale.PERSIAN,因此您需要创建语言环境。

final Locale persianLocale = new Locale("fa","IR");

然后设置它:

tts.setLanguage(persianLocale);

关于android - Espeak 读取单独的字母而不是单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48948249/

39 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com