C#语音录制
客服小妹是如何泡到手的——C#定时提醒·语音录制·语音播放·文件转录Demo——倾情奉献!
一.需求提出
客服小妹跟我说,每天要统计新加好友数,得先记下昨天的数目,然后查看今天的数目,还要相减,打字,记录——好麻烦!
又说,客户多的时候,忙起这头忘了那头,文字记录备忘又太费劲!
我说,赐你一个软件!于是有了下面这个东西。
二.主要界面
三.主要功能简介
1 .可定时弹出主界面,输入今日好友数,计算出新加好友数,并将今日好友数存盘。
2.统计信息显示在界面上,并且写入word文件中以备查看,并自动拷贝至剪切板,方便复制。
3.可语音备忘,录制语音消息,并保存在文件夹中。
4.可下拉列表查看文件,并选中播放。
5.可将原始文件转录成MP3文件。
四.编码实现
1.好友统计功能相关实现
先设计两个属性,直接对应于两个文件,这样一来,既能以字段的风格来操作文件,又能将变量持久化到硬盘上,以保存状态。

public int TodayFriendsCount
{
get
{
if (!File.Exists("todayFriendsCount.dat"))
{
File.WriteAllBytes("todayFriendsCount.dat", BitConverter.GetBytes(0));
}
return BitConverter.ToInt32(File.ReadAllBytes("todayFriendsCount.dat"), 0);
}
set { File.WriteAllBytes("todayFriendsCount.dat", BitConverter.GetBytes(value)); }
} public bool IsHandled
{
get
{
if (!File.Exists("HandledSign.dat"))
{
File.WriteAllBytes("HandledSign.dat", BitConverter.GetBytes(false));
}
return BitConverter.ToBoolean(File.ReadAllBytes("HandledSign.dat"), 0);
}
set
{
File.WriteAllBytes("HandledSign.dat", BitConverter.GetBytes(value));
this.toolStripLabel_isHandled.Text = this.IsHandled ? "今日已处理" : "今日未处理";
this.toolStripLabel_isHandled.ForeColor = this.IsHandled ? Color.Red : Color.Blue;
}
}

计算按钮事件处理方法

private void button1_Click(object sender, EventArgs e)
{
//已经处理过
if (this.IsHandled)
{
DialogResult dialogResult = MessageBox.Show("今日已经执行过,是否还要继续操作?", "提醒", MessageBoxButtons.YesNo);
if (dialogResult == DialogResult.No)
{
this.ReFocusInput();
return;
}
} if (String.IsNullOrEmpty(this.textBox_todayCount.Text.Trim()))
{
MessageBox.Show("输入不能为空!");
this.textBox_todayCount.Focus();
return;
} int todayFriendsCountNew = int.Parse(this.textBox_todayCount.Text.Trim());
int incremeFriendsCount = todayFriendsCountNew - this.TodayFriendsCount;
this.richTextBox_ShowNewCount.Text = string.Format("今日新加好友:{0} - {1} = {2}",
todayFriendsCountNew,
this.TodayFriendsCount,
incremeFriendsCount);
Clipboard.SetText(this.richTextBox_ShowNewCount.Text); string text = string.Format("{0} {1}\r\n", DateTime.Now.ToShortDateString(), this.richTextBox_ShowNewCount.Text);
this.AppendFriendsDiary(text); //重置基础参数
this.ReSetInitialParameter(todayFriendsCountNew, true);
//重聚焦输入框
this.ReFocusInput();
}

2.语音备忘功能相关实现
设计一个byte数组用于存放语音数据
private Byte[] audioData = new byte[0];
采集发生时,将声音数据数组拼接到字段数组上。
void microphoneCapturer_AudioCaptured(byte[] data)
{
this.audioData = BufferJointer.Joint(this.audioData, data);
this.decibelDisplayer1.DisplayAudioData(data);
}
停止录制时写入文件

private void button_stop_Click(object sender, EventArgs e)
{
this.microphoneCapturer.Stop();//停止采集
this.originalFileManager.WriteFile(this.audioData);//写文件
this.LoadAduioFileList();
this.ShowWorkStatus(false);
}

播放选中文件

private void toolStripButton1_Click(object sender, EventArgs e)
{
if (this.ExamineSelectNull())
{
return;
}
this.audioPlayer.Play(this.originalFileManager.ReadFile(this.toolStripComboBox1.SelectedText));
}

转录为MP3文件

private void toolStripButton2_Click(object sender, EventArgs e)
{
if (this.ExamineSelectNull())
{
return;
} this.MakeAudioFile(); DialogResult dialogResult = MessageBox.Show("转存成功,是否打开目录查看?", "提醒", MessageBoxButtons.YesNo);
if (dialogResult == System.Windows.Forms.DialogResult.Yes)
{
this.mP3FileManager.OpenDirectory();
}
}

五.源码下载
下载: 客服备忘系统(包含语音备忘功能、语音播放功能、并能将语音文件转录成MP3)
C#语音录制的更多相关文章
- android 仿微信聊天界面,以及语音录制功能
extends:http://104zz.iteye.com/blog/1709840 本例为模仿微信聊天界面UI设计,文字发送以及语言录制UI. 1先看效果图: 第一:chat.xml设计 ...
- 客服小妹是如何泡到手的——C#定时提醒·语音录制·语音播放·文件转录Demo源码——倾情奉献!
一.需求提出 客服小妹跟我说,每天要统计新加好友数,得先记下昨天的数目,然后查看今天的数目,还要相减,打字,记录——好麻烦! 又说,客户多的时候,忙起这头忘了那头,文字记录备忘又太费劲! 我说,赐你一 ...
- h5语音录制及上传(Java版语音聊天系统)
Since Chrome version 47, Voice Recording works only on HTTPS sites 目前基于webikit(谷歌之类的webikit)和Gecko(F ...
- MediaRecorder实现微信、QQ、人人、易信等语音录制功能工具:MediaUtilAPI
本文介绍使用MediaRecorder进行录制音频.录制视频学习,熟悉MediaRecorder执行流程,通过简单的Demo结合解释运行效果,最后封装MediaRecorder的API工具,实现常见比 ...
- Unity3D 实现简单的语音聊天 [iOS版本]
现在很多手机游戏中的聊天系统都加入语音聊天的功能,相比于传统的文字聊天,语音聊天在MMORPG中显得尤为重要,毕竟直接口头交流总比你码字快得多了,也更直观些. 实现语音聊天的方法很多,U3D中有不少第 ...
- Android(java)学习笔记144:Android音视频录制类MediaRecorder用法举例
Android语音录制可以通过MediaRecorder和AudioRecorder.MediaRecorder本来是多媒体录制控件,可以同时录制视频和语音,当不指定视频源时就只录制语音(默认录制语言 ...
- 微信语音红包小程序开发如何提高精准度 红包小程序语音识别精准度 微信小程序红包开发语音红包
公司最近开发的一个微信语音红包,就是前些时间比较火的包你说红包小程序.如何提高识别的精准度呢. 在说精准度之前,先大概说下整个语音识别的开发流程.前面我有文章已经说到过了.具体我就不谈了.一笔带过. ...
- anr以及nlp语音自动化测试方案
进行asr自动化测试 1.将人工语音录制的音频文件分为一句话一个文件,并将文件名命名为此句话,可以加后缀,例如:附近的公园_1 2.使用电脑连接蓝牙音箱,控制好距离角度等环境 3.使用python或者 ...
- Swift iOS实现把PCM语音转成MP3格式
最近折腾了swift的语音录制识别和转码,这块还是比较坑的,由于语音识别的准确度实测大概也就80%左右,所以还是需要上传录音文件啊.首先是用讯飞语音SDK实现语音录制和识别(语音听写),第一个坑是讯飞 ...
随机推荐
- js弹出对话框,遮罩效果,
刚刚来到实习单位,我跟着廖哥做项目.然后他分配给我一个小小的任务,实现起来总的效果如下: 然后,但我们单击显示数目这个链接的时候,就会弹出一个又遮罩效果的对话框,如下图: 当我们在对话框中再点击里面的 ...
- Win7和VS2013上使用Intel的TBB
源地址:http://www.th7.cn/system/win/201505/103966.shtml http://wenku.baidu.com/link?url=zH7vwmWltWF5R-9 ...
- UITableView性能优化及手工绘制UITableViewCell
提高表视图的性能 UITableView作为应用中最常用的视图,它的性能优化问题几乎是经常提及.下面对在非网络访问情况下的表视图性能优化进行了主要的几点说明: 1.自定义类或XIB文件时 在系统提供的 ...
- 一个用 C 语言写的迷你版 2048 游戏,仅仅有 500个字符
Jay Chan 用 C 语言写的一个迷你版 2048 游戏,仅仅有 487 个字符. 来围观吧 M[16],X=16,W,k;main(){T(system("stty cbreak&qu ...
- Spring配置DataSource数据源
在Spring框架中有例如以下3种获得DataSource对象的方法: 1.从JNDI获得DataSource. 2.从第三方的连接池获得DataSource. 3.使用DriverManagerDa ...
- ORACLE—005:创建JOB(二)
假设须要创建带參数的job,怎样创建呢. 我们直接将參数声明.并赋值.然后传给job调用的存储过程就可以. 比如.存储过程名为Pro_Test_JOB,參数共同拥有一个.是VARCHAR2类型. 创建 ...
- JAVA必备——13个核心规范
标准的价值: 你听过这句话吗?"一流企业做标准.二流企业做品牌.三流企业做产品!"我时我就在想,做标准的企业就是一流的?卖产品就是三流公司?而坐产品或者加工的公司,即使说销售量非常 ...
- Python 分析Twitter用户喜爱的推文
CODE: #!/usr/bin/python # -*- coding: utf-8 -*- ''' Created on 2014-8-5 @author: guaguastd @name: an ...
- GitHub上最火的40个iOS开源项目
1. AFNetworking 在众多iOS开源项目中,AFNetworking可以称得上是最受开发者欢迎的库项目.AFNetworking是一个轻量级的iOS. Mac OS X网络通信类库,现在是 ...
- Codeforces Round #252 (Div. 2) B. Valera and Fruits(模拟)
B. Valera and Fruits time limit per test 1 second memory limit per test 256 megabytes input standard ...