门诊叫号系统系列-1.语音叫号 .net c#
最近收到一个需求,朋友诊室需要做到门诊叫号,流程如下:病人选择医生-刷身份证排队-医生点击病人姓名叫号。
经过团队的努力,一个简易的门诊叫号系统已经完成。现在把各个功能记录下来,方便以后查看。
1.语音叫号
叫号的DLL:DotNetSpeech.dll
测试代码如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms; using DotNetSpeech; namespace voice
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
/// <summary>
/// 语音列表
/// </summary>
List<SpVoice> _voice = new List<SpVoice>();
private void btnSound_Click(object sender, EventArgs e)
{
this.AddVoice(txtVoice1.Text, int.Parse(txtVolume1.Text), int.Parse(txtRate1.Text));
this.AddVoice(txtVoice2.Text, int.Parse(txtVolume2.Text), int.Parse(txtRate2.Text));
for (int i = 0; i < _voice.Count(); i++)
{
try
{
//根据文本叫号
_voice[i].Speak(this.txtVoiceText.Text, SpeechVoiceSpeakFlags.SVSFlagsAsync);
}
catch (Exception ex)
{
txtError.Text = DateTime.Now.ToString() + ex.ToString() + " " + txtError.Text;
}
}
} /// <summary>
/// 增加语音库
/// </summary>
/// <param name="p_Name">语音库名称</param>
/// <param name="p_Volume">音量</param>
/// <param name="p_Rate">音速</param>
public void AddVoice(string p_Name, int? p_Volume, int? p_Rate)
{
try
{
for (int i = 0; i < _voice.Count(); i++)
{
if (_voice[i].Voice.GetAttribute("name") == p_Name)
{
_voice[i].Rate = p_Rate == null ? -3 : p_Rate.Value;
if (p_Volume != null) _voice[i].Volume = p_Volume.Value;
return;
}
}
SpVoice voice = new SpVoice();
voice.Voice = voice.GetVoices(string.Format("name={0}", p_Name), "").Item(0);
voice.Rate = p_Rate == null ? -3 : p_Rate.Value;
if (p_Volume != null) voice.Volume = p_Volume.Value;
_voice.Add(voice);
}
catch(Exception ex) {
txtError.Text = DateTime.Now.ToString()+ex.ToString() + " " + txtError.Text;
}
}
}
}
测试界面如下:

注意事项:采用DotNetSpeech.dll 是不支持64位的,启动的程序要编译为X86,DLL编译需要ANYCPU,很奇怪,这个找不到原因
门诊叫号系统系列-1.语音叫号 .net c#的更多相关文章
- 叫号系统排队系统挂号系统实现(JAVA队列)
关于队列,使用的地方很的多. 现实中有许多的样例. 比方医院的挂号系统,银行里的叫号系统,食堂里的排队打饭等等.市场上又这种排队取号的设备.他们的功能基本例如以下: 1.系统可联网联机统一发号.2.系 ...
- 华为OJ训练之 简易的银行排号叫号系统
闯关第五关的题目,一个中级题和一个高级题.中间题比較简单,半个小时完毕了.题目例如以下 实现一个简易的银行排号叫号系统 get 取号 演示样例:" ...
- 用SignalR 2.0开发客服系统[系列2:实现聊天室]
前言 交流群:195866844 上周发表了 用SignalR 2.0开发客服系统[系列1:实现群发通讯] 这篇文章,得到了很多帮助和鼓励,小弟在此真心的感谢大家的支持.. 这周继续系列2,实现聊天室 ...
- 用SignalR 2.0开发客服系统[系列3:实现点对点通讯]
前言 交流群:195866844 目录: 用SignalR 2.0开发客服系统[系列1:实现群发通讯] 用SignalR 2.0开发客服系统[系列2:实现聊天室] 真的很感谢大家的支持,今天发表系列3 ...
- 用SignalR 2.0开发客服系统[系列4:负载均衡的情况下使用SignalR]
前言 交流群:195866844 目录: 用SignalR 2.0开发客服系统[系列1:实现群发通讯] 用SignalR 2.0开发客服系统[系列2:实现聊天室] 用SignalR 2.0开发客服系统 ...
- 用SignalR 2.0开发客服系统[系列5:使用SignalR的中文简体语言包和其他技术点]
前言 交流群:195866844 目录: 用SignalR 2.0开发客服系统[系列1:实现群发通讯] 用SignalR 2.0开发客服系统[系列2:实现聊天室] 用SignalR 2.0开发客服系统 ...
- 车牌识别LPR系统系列文章汇总
这里的LPR的的几篇文章是之前项目的一些相关资料的整理,涉及实验室内部的资料就没有放上来,希望能对想了解这方面的同学,有所帮助,那怕了解个大概也好.知道整体的思路就好.当初就是一个人瞎摸索,走了很多的 ...
- 易普优APS高级计划排程系统系列提纲:行业知识,业务建模,排程算法,计划可视化,平台框架,案例分享
专注于高级计划排程系统研发与实施10来年了,国内外各种APS软件基本都研究过,这里列个提纲主要从6个方面跟大家一起讨论分享,欢迎大家鼓掌或拍砖 易普优APS高级计划排程系统系列001:行业知识,APS ...
- 基于深度学习的人脸识别系统系列(Caffe+OpenCV+Dlib)——【四】使用CUBLAS加速计算人脸向量的余弦距离
前言 基于深度学习的人脸识别系统,一共用到了5个开源库:OpenCV(计算机视觉库).Caffe(深度学习库).Dlib(机器学习库).libfacedetection(人脸检测库).cudnn(gp ...
随机推荐
- 北京服务业占GDP比重达81.7%
北京服务业占GDP比重达81.7% 2017-05-17 19:46:00 来源: 中国新闻网(北京)举报 0 易信 微信 QQ空间 微博 更多 (原标题:北京服务业占GDP比重达81.7%) ...
- Mac OS X 下有关adb相关问题
一.什么是adb? ADB的全称是Android Debug Bridge,用来调试Android程序的,白话点就是debug工具! 位置:一般下载Android的SDK时候在platform-too ...
- JDK源码阅读--StringBuffer
public final class StringBuffer extends AbstractStringBuilder implements java.io.Serializable, CharS ...
- centos7中给Elasticsearch5 安装bigdesk
系统:centos7 elasticsearch:5.2.2 安装步骤 步骤 由于elasticsearch不再建议支持插件的安装方式.建议作为独立的程序来安装类似于bigdesk.head. 以前都 ...
- PAT甲级——A1090 Highest Price in Supply Chain
A supply chain is a network of retailers(零售商), distributors(经销商), and suppliers(供应商)-- everyone invo ...
- pandas一些基本操作(DataFram和Series)_2
import numpy as nparr1 = np.arange(32).reshape(8,4)print(arr1)arr1 = arr1.reshape(-1);print(arr1)arr ...
- [转]WPF更换主题
如果要做到一个应用程序其基本的内容不变,但改变整个应用程序的外观可以这样做: 对于每一套外观定义一个ResourceDictionary 在应用程序中,动态加载此应用程序(或窗体)的Resource ...
- leetcode 238 & leetcode 152 & leetcode 228
lc238 Product of Array Except Self 遍历两次数组 用一个res[] 记录答案 1) 第一次,从左往右遍历 res[i] 记录0~i-1的乘积 2) 第二次,从右往左遍 ...
- set_case_analysis
set_case_analysis给某个Pin指定固定电平,然后时序分析会根据该结果优化原先的电路. 试举例如下:
- 廖雪峰Java10加密与安全-6数字证书-1数字证书
数字证书: 非对称加密算法:对数据进行加密/解密 签名算法:确保数据完整性和抗否认性 摘要算法:确保证书本身没有被篡改