客服小妹是如何泡到手的——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. Qt调用Delphi编写的COM组件

    这个问题捣鼓了两天,现在终于解决了,做个笔记分享给大家,以免走弯路 起初,我的想法是在DLL中写一个interface并从函数中导出这个interface,像这样的代码 ICom1 = interfa ...

  2. VS2005 MFC 预编译头文件来自编译器的早期版本,或者预编译头为 C++ 而在 C 中使用它(或相反)

    当 Visual C++ 项目启用了预编译头 (Precompiled header) 功能时,如果项目中同时混合有 .c 和 .cpp 源文件,则可能收到 C1853 编译器错误:fatal err ...

  3. Swift - 微调器或叫步进器(UIStepper)的用法

    1,微调器(UIStepper)控件包含两个按钮“+”和“-”,让使用者可以依照自己的喜欢做数值上的调整. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 1 ...

  4. 查看进程所用的内存(使用GetWindowThreadProcessId取得进程ID,OpenProcess打开进程和GetProcessMemoryInfo取得内存信息)

    // function GetProcessMemorySize(_sProcessName: string; var _nMemSize: Cardinal): Boolean; var l_nWn ...

  5. 网络知识汇总(2) - Linux下如何修改ip地址

    在Linux的系统下如何才能修改IP信息   以前总是用ifconfig修改,重启后总是得重做.如果修改配置文件,就不用那么麻烦了-   A.修改ip地址   即时生效:   # ifconfig e ...

  6. Successful Lisp - Cover

    Successful Lisp - Cover Successful Lisp: How to Understand and Use Common Lisp

  7. QUIC简单介绍

    QUIC,即Quick UDP Internet Connection,类似于SPDY,相同也是由Google公司在现有已存协议之上进行了扩展设计,而旨在降低网络延迟.之前我曾介绍过SPDY的相关信息 ...

  8. 真实世界里的钢铁侠-特斯拉汽车创始人埃隆·马斯克(Elon Musk)

    真实世界里的钢铁侠--特斯拉汽车公司和SpaceX公司总裁马斯克(31岁).当我们得意于「站在山上踢几块石头下去」或是「站在风口上的猪」的成功理论的时候,我们真的成功了吗?我们到底创造了什么?改变了什 ...

  9. _tcscat在Debug和Release根据问题

    背景: 因此,例如,在下面的代码段,作用是得到的路径当前程序(C:\work\A.exe),然后"A.exe"拆除,组装的"C:\work\inject.dll" ...

  10. python语言学习3 ——第一个python程序

    输入exit即退出,这样写的缺点是没有保存已经写的代码,下次需要重新写