我已经为工作编写了一个简单的秒表应用程序,我的老板希望它在你达到某个时间时告诉你,即在15分钟时说“已经过了15分钟。”,在30分钟时说“已经过了30分钟”。 “等等。我已经在网上查看了TTS的实现,但是我在如何将其实现到我现有的应用程序中是一个空白。我相信我对它的运作方式有了很好的理解,但正如之前所提到的,我在如何将它集成到我的应用程序中的空白。该应用程序是一个Windows窗体应用程序。任何援助将不胜感激。
代码:
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 System.Diagnostics;
namespace CiscoSw
{
public partial class SwForm : Form
{
private readonly Stopwatch _sw = new Stopwatch();
public SwForm()
{
InitializeComponent();
startBtn.Text = @"Start";
UpdateDisplay();
}
private void SwForm_Load(object sender, EventArgs e)
{
currentTimeUtc.Start();
}
private void startBtn_Click(object sender, EventArgs e)
{
if (!_sw.IsRunning)
{
_sw.Start();
stopwatchTimer.Start();
startBtn.Text = @"Stop";
UpdateDisplay();
}
else
{
_sw.Stop();
stopwatchTimer.Stop();
startBtn.Text = @"Start";
}
}
private void resetBtn_Click(object sender, EventArgs e)
{
if (_sw.IsRunning)
{
_sw.Restart();
}
else
{
_sw.Reset();
}
UpdateDisplay();
}
private void stopwatchTimer_Tick(object sender, EventArgs e)
{
UpdateDisplay();
}
private void UpdateDisplay()
{
stopwatchTimeLabel.Text =
$"{_sw.Elapsed.Hours.ToString("00")}:{_sw.Elapsed.Minutes.ToString("00")}:{_sw.Elapsed.Seconds.ToString("00")}";
}
private void currentTimeUtc_Tick(object sender, EventArgs e)
{
DateTime timenow = DateTime.UtcNow;
displayCurrentTime.Text = $"{timenow:M/d/yyyy HHmm Zulu}";
}
}
}
答案 0 :(得分:0)
在项目中引用以下程序集:
System.Speech.dll
在更新显示中,您必须检查间隔(15米,30米)并执行TTS。为此,您需要实现以下内容:
using System.Speech.Synthesis;
var synthesizer = new SpeechSynthesizer(); // create this only once for reuse
synthesizer.Speak("the time interval that has lapsed");
如果您的计算机上未安装Microsoft Speech,则可以下载here。
您可以转到:
配置语音识别和TTS(语音等)Control Panel\All Control Panel Items\Speech Recognition