客服小妹是如何泡到手的——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#语音录制的更多相关文章

  1. android 仿微信聊天界面,以及语音录制功能

    extends:http://104zz.iteye.com/blog/1709840 本例为模仿微信聊天界面UI设计,文字发送以及语言录制UI. 1先看效果图:     第一:chat.xml设计 ...

  2. 客服小妹是如何泡到手的——C#定时提醒·语音录制·语音播放·文件转录Demo源码——倾情奉献!

    一.需求提出 客服小妹跟我说,每天要统计新加好友数,得先记下昨天的数目,然后查看今天的数目,还要相减,打字,记录——好麻烦! 又说,客户多的时候,忙起这头忘了那头,文字记录备忘又太费劲! 我说,赐你一 ...

  3. h5语音录制及上传(Java版语音聊天系统)

    Since Chrome version 47, Voice Recording works only on HTTPS sites 目前基于webikit(谷歌之类的webikit)和Gecko(F ...

  4. MediaRecorder实现微信、QQ、人人、易信等语音录制功能工具:MediaUtilAPI

    本文介绍使用MediaRecorder进行录制音频.录制视频学习,熟悉MediaRecorder执行流程,通过简单的Demo结合解释运行效果,最后封装MediaRecorder的API工具,实现常见比 ...

  5. Unity3D 实现简单的语音聊天 [iOS版本]

    现在很多手机游戏中的聊天系统都加入语音聊天的功能,相比于传统的文字聊天,语音聊天在MMORPG中显得尤为重要,毕竟直接口头交流总比你码字快得多了,也更直观些. 实现语音聊天的方法很多,U3D中有不少第 ...

  6. Android(java)学习笔记144:Android音视频录制类MediaRecorder用法举例

    Android语音录制可以通过MediaRecorder和AudioRecorder.MediaRecorder本来是多媒体录制控件,可以同时录制视频和语音,当不指定视频源时就只录制语音(默认录制语言 ...

  7. 微信语音红包小程序开发如何提高精准度 红包小程序语音识别精准度 微信小程序红包开发语音红包

    公司最近开发的一个微信语音红包,就是前些时间比较火的包你说红包小程序.如何提高识别的精准度呢. 在说精准度之前,先大概说下整个语音识别的开发流程.前面我有文章已经说到过了.具体我就不谈了.一笔带过. ...

  8. anr以及nlp语音自动化测试方案

    进行asr自动化测试 1.将人工语音录制的音频文件分为一句话一个文件,并将文件名命名为此句话,可以加后缀,例如:附近的公园_1 2.使用电脑连接蓝牙音箱,控制好距离角度等环境 3.使用python或者 ...

  9. Swift iOS实现把PCM语音转成MP3格式

    最近折腾了swift的语音录制识别和转码,这块还是比较坑的,由于语音识别的准确度实测大概也就80%左右,所以还是需要上传录音文件啊.首先是用讯飞语音SDK实现语音录制和识别(语音听写),第一个坑是讯飞 ...

随机推荐

  1. android百度地图打包混淆 用不了No such file or directory (2) com.baidu.mapapi.BMapManager.init(Unknown Source)

    调用了百度地图地图开发包是baidumapapi_v2_1_1.jar,定位SDK版本是locSDK_3.3.jar 调试的时候能运行!可是打包签名后就运行不了! baidu  google 了好久! ...

  2. Mac OS提示# 14:自己定义文件图标

    本教程的其余部分再一次错过了方法,和一些使用提示,做一些额外的,我们希望对大家有帮助.  自己定义图标      对于Mac OSX用户来说,Dashboard,Dock栏,壁纸以及各种键盘触摸板的快 ...

  3. UVALive 6869(后缀数组)

    传送门:Repeated Substrings 题意:给定一个字符串,求至少重复一次的不同子串个数. 分析:模拟写出子符串后缀并排好序可以发现,每次出现新的重复子串个数都是由现在的height值减去前 ...

  4. Python学习入门基础教程(learning Python)--5.3 Python写文件基础

    前边我们学习了一下Python下如何读取一个文件的基本操作,学会了read和readline两个函数,本节我们学习一下Python下写文件的基本操作方法. 这里仍然是举例来说明如何写文件.例子的功能是 ...

  5. 使用和制作patch文件

    使用和制作patch文件 发表时间: 2007-2-13 20:57    作者: superuser    来源: 迷茫人 字体: 小 中 大 | 打印 原文http://www.linuxsir. ...

  6. dedecms 文章列表和频道列表同时调用

    演示效果:http://www.mypf110.com/qcd/ <div class="changshi_wrap"> {dede:channelartlist ro ...

  7. Android开发之使用URL訪问网络资源

    Android开发之使用URL訪问网络资源 URL (UniformResource Locator)对象代表统一资源定位器,它是指向互联网"资源"的指针. 资源能够是简单的文件或 ...

  8. 使用javaDate类代数据仓库维度表

    使用javaDate类代数据仓库维度表 Date类别: ,返回一个相对日期的毫秒数.精确到毫秒.但不支持日期的国际化和分时区显示. Date 类从Java 开发包(JDK)1.0 就開始进化,当时它仅 ...

  9. CSDN开源夏令营 百度数据可视化实践 ECharts(8)问题分析

    ECharts问题描写叙述: 问题就是折线图上的点是显示的,有人问能不能一開始不显示,当你点击的时候或者是当鼠标移动到上面的时候,折线上的点才显示? 例如以下图所看到的: 分析:让折线上的点不显示能够 ...

  10. ios UITableView 相关

    1.tableView 实现的方法 无分组的cell #pragma mark - Table view data source - (NSInteger)tableView:(UITableView ...