基本信息
源码名称:WpfSpeechDemo语音朗读实例源码(DotNetSpeech)
源码大小:0.08M
文件格式:.rar
开发语言:C#
更新时间:2018-01-24
友情提示:(无需注册或充值,赞助后即可获取资源下载链接)
嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):78630559
本次赞助数额为: 10 元×
微信扫码支付:10 元
×
请留下您的邮箱,我们将在2小时内将文件发到您的邮箱
源码介绍
可调整音量大小、可调整语速,可选择声卡和语音引擎
可调整音量大小、可调整语速,可选择声卡和语音引擎
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using DotNetSpeech;//cs文件中引入库
namespace WpfSpeechDemo
{
/// <summary>
/// MainWindow.xaml 的交互逻辑
/// </summary>
public partial class MainWindow : Window
{
SpVoice speech = new SpVoice();
int speechRate = 0;
int volume = 70;
public MainWindow()
{
InitializeComponent();
init();
}
private void init()
{
//初始化语音引擎列表
foreach (ISpeechObjectToken Token in speech.GetVoices(string.Empty, string.Empty))
{
cmbVoices.Items.Add(Token.GetDescription(49));
}
//取得音频输出列表
foreach (ISpeechObjectToken AudioOut in speech.GetAudioOutputs(string.Empty, string.Empty))
{
cmbAudioOut.Items.Add(AudioOut.GetDescription(49));
}
cmbVoices.SelectedIndex = 0;
cmbAudioOut.SelectedIndex = 0;
tbarRate.Value = speechRate;
trbVolume.Value = volume;
tbarRate.TickFrequency=1;
//tbarRate.Ticks=1;
}
private void tbarRate_Scroll(object sender, EventArgs e)
{
speech.Rate = (int)tbarRate.Value;
}
private void trbVolume_Scroll(object sender, EventArgs e)
{
speech.Volume = (int)trbVolume.Value;
}
private void cmbVoices_SelectedIndexChanged(object sender, EventArgs e)
{
speech.Voice = speech.GetVoices(string.Empty, string.Empty).Item(cmbVoices.SelectedIndex);
}
private void cmbVoices_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
speech.Voice = speech.GetVoices(string.Empty, string.Empty).Item(cmbVoices.SelectedIndex);
}
private void cmbAudioOut_SelectedIndexChanged(object sender, EventArgs e)
{
speech.AudioOutput = speech.GetAudioOutputs(string.Empty, string.Empty).Item(cmbAudioOut.SelectedIndex);
}
private void cmbAudioOut_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
speech.AudioOutput = speech.GetAudioOutputs(string.Empty, string.Empty).Item(cmbAudioOut.SelectedIndex);
}
private void bt_speek_Click(object sender, EventArgs e)
{
//终止先前朗读,如果有
speech.Speak(" ", SpeechVoiceSpeakFlags.SVSFlagsAsync);
speech.Speak(tbspeech.Text, SpeechVoiceSpeakFlags.SVSFlagsAsync);
//speech.Word = new _ISpeechVoiceEvents_WordEventHandler(speech_Word);
}
private void bt_stop_Click(object sender, EventArgs e)
{
speech.Speak("", SpeechVoiceSpeakFlags.SVSFlagsAsync);
}
private void tbarRate_ValueChanged(object sender, RoutedPropertyChangedEventArgs<double> e)
{
speech.Rate = (int)e.NewValue;
}
private void trbVolume_ValueChanged(object sender, RoutedPropertyChangedEventArgs<double> e)
{
speech.Volume = (int)e.NewValue;
}
}
}