У меня есть форма описания, которая содержит метки и 3 кнопки (btntts, btnstop и btnchinese), я также уже ссылался на System.Speech.dll
.Как видно из приведенного ниже кода, при щелчке он будет извлекать данные, содержащие китайское описание, из базы данных для заполнения меток.
private void btnchinese_Click(object sender, EventArgs e)
{
if (btnchinese.Text == "Chinese")
{
using (SqlConnection sqlcon = new SqlConnection(connectionstring))
{
sqlcon.Open();
using (SqlCommand sqlcom = new SqlCommand("Select * from DishRepresentation WHERE Dish_ID='" + lblid.Text + "' and DishLanguage='Chinese'", sqlcon))
{
SqlDataReader sqldr = sqlcom.ExecuteReader();
sqldr.Read();
lbldescription.Text = sqldr["DishDescription"].ToString();
lbldishname.Text = sqldr["DishName"].ToString();
lbldisheatbenefit.Text = sqldr["DishHealthBenefit"].ToString();
lblbenefit.Text = sqldr["DishBenefit"].ToString();
lblbenefit2.Text = sqldr["DishBenefit2"].ToString();
lblbenefit3.Text = sqldr["DishBenefit3"].ToString();
lblbenefit4.Text = sqldr["DishBenefit4"].ToString();
lblbenefit5.Text = sqldr["DishBenefit5"].ToString();
}
}
btnchinese.Text = "英语";
btnstopspeech.Text = "停止阅读";
Что касается btntts, он будет читать заполненный текст. (Код ниже)
private void btnTTS_Click(object sender, EventArgs e)
{
pbuilder = new PromptBuilder();
speaker2 = new SpeechSynthesizer();
if (btnchinese.Text == "英语")
{
var culture = CultureInfo.GetCultureInfo("zh-CN");
var voices = speaker2.GetInstalledVoices(culture);
speaker.Rate = -2;
pbuilder.AppendText(lbldishname.Text);
SetTimer(2000);
pbuilder.AppendText(lbldescription.Text);
speaker2.SpeakAsync(pbuilder);
}
else if (btnchinese.Text == "Chinese")
{
var culture = CultureInfo.GetCultureInfo("en-US");
var voices = speaker2.GetInstalledVoices(culture);
speaker.Rate = -2;
pbuilder.AppendText(lbldishname.Text);
SetTimer(2000);
pbuilder.AppendText(lbldescription.Text);
speaker2.SpeakAsync(pbuilder);
}
}
ПРИМЕЧАНИЕ. Если метка заполнена на английском языке, btntts работает как требуется и читаетярлыки для пользователя.Однако он не будет читать, когда он заполнен китайским языком.Как я могу заставить его читать по-китайски?