我想用阿拉伯语保存音频文件。因为我使用的代码如下。
我正在尝试,但我无法用阿拉伯语保存。它仅以英语保存。
请帮帮我,谢谢
package com.t;
import java.io.File;
import java.util.HashMap;
import android.app.Activity;
import android.os.Bundle;
import android.os.Environment;
import android.speech.tts.TextToSpeech;
import android.speech.tts.TextToSpeech.OnInitListener;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
public class TextToSpeechNewActivity extends Activity {
Button store, play;
EditText input;
String speakTextTxt;
TextToSpeech mTts;
HashMap<String, String> myHashRender = new HashMap<String, String>();
String tempDestFile ;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
store = (Button) findViewById(R.id.button1);
play = (Button) findViewById(R.id.button2);
input = (EditText) findViewById(R.id.editText1);
store.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
speakTextTxt = input.getText().toString();
Log.v("log", ""+input.getText().toString());
myHashRender.put(TextToSpeech.Engine.KEY_PARAM_UTTERANCE_ID,speakTextTxt);
String exStoragePath = Environment.getExternalStorageDirectory().getAbsolutePath();
File appTmpPath = new File(exStoragePath + "/pradip");
appTmpPath.mkdirs();
String tempFilename = input.getText().toString()+".wav";
tempDestFile = appTmpPath.getAbsolutePath() + "/"+ tempFilename;
new MySpeech(speakTextTxt);
}
});
}
class MySpeech implements OnInitListener{
String tts;
public MySpeech(String tts)
{
this.tts = tts;
mTts = new TextToSpeech(TextToSpeechNewActivity.this, this);
}
@Override
public void onInit(int status)
{
Log.v("log", "initi");
mTts.synthesizeToFile(speakTextTxt, myHashRender, tempDestFile);
}
}
}
答案 0 :(得分:0)
从之前的评论:
这可能听起来有点明显,但您是否尝试使用
的返回值来首先检查setLanguage(...)
明确将语言设置为阿拉伯语Locale
?您还可以通过检查isLanguageAvailable(...)
Locale
是否可用
和
从维基百科中获取它们:ISO 3166-1和ISO 639-1。请注意
Locale
docs说:“语言代码是ISO 639-1定义的双字母小写ISO语言代码(例如”en“)。国家代码两个 - 字母 ISO 3166-1定义的大写ISO国家代码(例如“US”)。“