91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Microsoft Speech Platform案例

發布時間:2020-07-17 22:47:38 來源:網絡 閱讀:1553 作者:桂素偉 欄目:編程語言

上篇博文說了一些Microsoft Speech Platform的知識點,這篇博文用一個例子來實踐一下。

例子是實現一段文字的朗讀,朗讀到那一句文字,文字就變紅色。就這么簡單。

先看窗體布局。

Microsoft Speech  Platform案例

實現代碼:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using Microsoft.Speech.Synthesis;
using System.Threading;
namespace SpeechPro
{
public partial class PlayForm : Form
{
public PlayForm()
{
InitializeComponent();
}
/// <summary>
/// TTS對象
/// </summary>
SpeechSynthesizer speech;
/// <summary>
/// 分隔文本內容成數組
/// </summary>
/// <param name="content">文本內容</param>
/// <returns>字符數組</returns>
string[] GetArr(string content)
{
char[] charArr = new char[] { '。', ',', ';' };//分隔字符數組
string[] arr = content.Split(charArr, StringSplitOptions.RemoveEmptyEntries);//分隔
int sumcount = 0;//字符總數變量
for (int i = 0; i < arr.Length; i++)
{
sumcount += arr[i].Length;//累加變量總數
arr[i] += content.Substring(sumcount, 1);//獲取分隔標點符號
sumcount += 1;//加標點符號的長度
}
return arr;
}
string[] arr;
/// <summary>
/// 播放內容
/// </summary>
void Play()
{
arr = GetArr(Play_TB.Text);
//設計TTS對象,并設置對象
speech = new SpeechSynthesizer();
speech.SetOutputToDefaultAudioDevice();
speech.Volume = 100;
speech.Rate = 0;
speech.SpeakStarted += speech_SpeakStarted;
//異步誦讀語音
for (int i = 0; i < arr.Length; i++)
{
PromptBuilder pb = new PromptBuilder();
pb.AppendText(arr[i], PromptRate.Medium);
Prompt p = new Prompt(pb);
speech.SpeakAsync(p);
}
}
int index = 0;//朗讀索引值
int sum = 0;//朗讀總長度
/// <summary>
/// 朗讀Prompt開始時事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
void speech_SpeakStarted(object sender, SpeakStartedEventArgs e)
{
if (index > 0)
{
//使上一條記錄恢復原來的樣式
Play_TB.Select(sum - arr[index - 1].Length, arr[index - 1].Length);
Play_TB.SelectionColor = Color.Black;
}
//設置現在朗讀記錄的樣式
Play_TB.Select(sum, arr[index].Length);
Play_TB.SelectionColor = Color.Red;
//增加長度和朗讀索引
sum += arr[index].Length;
index++;
this.Text = "正在朗讀第" + index + "句";
}
/// <summary>
/// 朗讀按鈕
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void Play_But_Click(object sender, EventArgs e)
{
Play();
}
}
}

 

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

方正县| 云龙县| 栾川县| 亳州市| 海南省| 会理县| 基隆市| 西林县| 惠来县| 大余县| 大港区| 留坝县| 连州市| 阿城市| 镇远县| 溧水县| 瓮安县| 沈阳市| 鹿邑县| 晋州市| 唐海县| 厦门市| 龙山县| 彰武县| 上虞市| 望江县| 海盐县| 太原市| 肥乡县| 白河县| 阿坝县| 广丰县| 锡林浩特市| 易门县| 宜宾市| 永和县| 吉隆县| 长乐市| 兴义市| 汤阴县| 延长县|