您的位置:首页 > 编程语言 > C#

C#调用百度语音识别小Demo

2016-10-26 10:57 176 查看
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Net;
using System.IO;
using System.Threading;
using Newtonsoft.Json.Linq;

namespace voice
{
public partial class Form1 : Form
{
string testtoken = "";
string cuid = "";//随便写
string serverURL = "http://vop.baidu.com/server_api";
public Form1()
{
InitializeComponent();
cuid = Guid.NewGuid().ToString();
}

private string Post(string audioFilePath)
{
serverURL += "?lan=zh&cuid=kwwwvagaa&token=" + testtoken;
FileStream fs = new FileStream(audioFilePath, FileMode.Open);
byte[] voice = new byte[fs.Length];
fs.Read(voice, 0, voice.Length);
fs.Close();
fs.Dispose();

HttpWebRequest request = null;

Uri uri = new Uri(serverURL);
request = (HttpWebRequest)WebRequest.Create(uri);
request.Timeout = 5000;
request.Method = "POST";
request.ContentType = "audio/wav; rate=16000";
request.ContentLength = voice.Length;
try
{
using (Stream writeStream = request.GetRequestStream())
{
writeStream.Write(voice, 0, voice.Length);
writeStream.Close();
writeStream.Dispose();
}
}
catch
{
return null;
}
string result = string.Empty;
string result_final = string.Empty;
using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
{
using (Stream responseStream = response.GetResponseStream())
{
using (StreamReader readStream = new StreamReader(responseStream, Encoding.UTF8))
{
string line = string.Empty;
StringBuilder sb = new StringBuilder();
while (!readStream.EndOfStream)
{
line = readStream.ReadLine();
sb.Append(line);
sb.Append("\r");
}
readStream.Close();
readStream.Dispose();
result = sb.ToString();
string[] indexs = result.Split(',');
foreach (string index in indexs)
{
string[] _indexs = index.Split('"');
if (_indexs[2] == ":[")
result_final = _indexs[3];
}
}
responseStream.Close();
responseStream.Dispose();
}
response.Close();
}
return result_final;
}

private void button1_Click(object sender, EventArgs e)
{
textBox1.Text = Post(Application.StartupPath + "\\2.wav");
}
}
}
附件中有源代码,具体看里面的README

附件:http://down.51cto.com/data/2368300
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  百度 语音识别 public