惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

量子位
S
Securelist
MyScale Blog
MyScale Blog
Jina AI
Jina AI
罗磊的独立博客
The Cloudflare Blog
美团技术团队
博客园 - 叶小钗
阮一峰的网络日志
阮一峰的网络日志
博客园 - 三生石上(FineUI控件)
月光博客
月光博客
雷峰网
雷峰网
小众软件
小众软件
aimingoo的专栏
aimingoo的专栏
大猫的无限游戏
大猫的无限游戏
博客园 - Franky
博客园 - 聂微东
Y
Y Combinator Blog
酷 壳 – CoolShell
酷 壳 – CoolShell
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
MongoDB | Blog
MongoDB | Blog
T
Tailwind CSS Blog
Attack and Defense Labs
Attack and Defense Labs
博客园_首页
Latest news
Latest news
Apple Machine Learning Research
Apple Machine Learning Research
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
The Hacker News
The Hacker News
G
GRAHAM CLULEY
Simon Willison's Weblog
Simon Willison's Weblog
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
P
Proofpoint News Feed
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
U
Unit 42
D
Docker
Webroot Blog
Webroot Blog
N
Netflix TechBlog - Medium
T
Tor Project blog
C
Cyber Attacks, Cyber Crime and Cyber Security
L
LINUX DO - 最新话题
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
The Last Watchdog
The Last Watchdog
B
Blog
Recent Announcements
Recent Announcements
GbyAI
GbyAI
Microsoft Azure Blog
Microsoft Azure Blog
Security Latest
Security Latest
V2EX - 技术
V2EX - 技术
N
News | PayPal Newsroom
Microsoft Security Blog
Microsoft Security Blog

博客园 - 亦续缘

[CSS]textarea设置下划线格式 赠送google wave邀请函 int[] 和 string[] 互换 - 亦续缘 将字符串转换成List<T> - 亦续缘 - 博客园 Web可用性设计的247条指导方针 line-height和字体实际高度的计算 IIS7用进程池的PID查找占用CPU的站点 UNICODE与汉字编码互转 CSS中属性的书写顺序 TinyMCE在线编辑器用JavaScript取值的问题 给SQL数据库表和字段添加描述信息 javascript 正确截取单字节和双字节混和字符串的方法 - 亦续缘 - 博客园 DataTable转换成JSON字符串的函数 异常详细信息: 不能通过已删除的行访问该行的信息 Web开发利器之IEWebDeveloperV2--有注册码 HttpUtility.ParseQueryString直接从字符串URL中提取参数 JavaScript创建命名空间 JavaScript ColorDropDownList - 亦续缘 - 博客园 asp.net Forms验证跨域页面不能访问的问题
语音验证码
亦续缘 · 2007-06-12 · via 博客园 - 亦续缘

最近工作没那么忙,趁着有点时间就写了个像微软和新浪注册时用的语音验证码。
主要是用微软TTS控件来生成声音的,不过声音不是很好听,至于生成的那些过时.wav文件我没做过多的处理。
有一种办法是:你可以把26个字母的语音给录下来并保存为相应的文件名(找个女生来录比较好听,不然对不起观众了,呵呵!),通过读取cookie把语音文件组成起来一并读出来,这样就不会产生过时的.wav文件。如果谁有更好的办法,欢迎大家拍砖。
生成声音的主要代码:
         using System.IO;
         using SpeechLib;
         using System.Drawing;
         using System.Threading;

         // 生成音频文件
        SpVoice voice = new SpVoice();
        string voiceStr = "";
        for (int i = 0; i < code.Length; i++)
        {
            voiceStr += code[i] + " ";
        }
        voice.Rate = 1;
        //voice.Speak(voiceStr, SpeechVoiceSpeakFlags.SVSFlagsAsync); //播放音频文件
        //voice.Speak(voiceStr, SpeechVoiceSpeakFlags.SVSFPurgeBeforeSpeak);
        SpeechStreamFileMode SpFileMode = SpeechStreamFileMode.SSFMCreateForWrite;
        SpFileStream SpFileStream = new SpFileStream();
        string savePath = Server.MapPath(".") +

"\\wav\\" + code + ".wav";
        SpFileStream.Open(savePath, SpFileMode, false);
        voice.AudioOutputStream = SpFileStream;
        voice.Speak(voiceStr, SpeechVoiceSpeakFlags.SVSFlagsAsync);
        voice.WaitUntilDone(Timeout.Infinite);
        SpFileStream.Close();

生成验证码的程序是用51aspx.com的

无刷新仿google波形扭曲彩色Asp.net验证码,个人觉得这个做得很漂亮的 :) 。
下载源代码
/Files/xczt/VoiceCode.rar
无刷新仿google波形扭曲彩色Asp.net验证码 是用asp.net 2.0开发的,我把它改成了1.1版本的,如果有需要的话也一并下载吧。呵呵!/Files/xczt/GoogleVerifyCode.rar