301_0@。
ShortPhrase 和 LongDictation 两种识别模式。支持 15 秒的语音。语音数据被分块发送到服务端,服务端会及时的返回部分的识别结果,所以客户端会收到多个部分结果和一个包含多个 n-best 选项的最终结果。支持最长两分钟的语音。语音数据被分块发送到服务器,根据服务端分辨出的语句间的停顿,客户端会受到多个部分结果和多个最终结果。
代码中我们要通过它们来告诉语音识别 API 执行识别的类型。比如要识别比 15s 短的语音,可以使用 ShortPhrase 模式构建 CreateDataClient 类型的实例:
效果,我们必须把音频数据以适当大小的块连续发送给服务端,下面代码中使用的块大小为 1024:
</span><span style="color: #0000ff">try</span><span style="color: #000000">
{
</span><span style="color: #0000ff">do</span><span style="color: #000000">
{
</span><span style="color: #008000">//</span><span style="color: #008000"> 把<a href="/tag/wenjian/" target="_blank" class="keywords">文件</a>数据读取到 buffer 中。</span>
bytesRead = fileStream.Read(buffer,<span style="color: #800080">0</span><span style="color: #000000">,buffer.Length);
</span><span style="color: #008000">//</span><span style="color: #008000"> 通过 DataRecognitionClient 类型的实例把语音数据发送到服务端。</span>
<span style="color: #0000ff">this</span><span style="color: #000000">.dataClient.SendAu<a href="/tag/dio/" target="_blank" class="keywords">dio</a>(buffer,bytesRead);
}
</span><span style="color: #0000ff">while</span> (bytesRead > <span style="color: #800080">0</span><span style="color: #000000">);
}
</span><span style="color: #0000ff">finally</span><span style="color: #000000">
{
</span><span style="color: #008000">//</span><span style="color: #008000"> 告诉服务端语音数据已经传送完了。</span>
<span style="color: #0000ff">this</span><span style="color: #000000">.dataClient.EndAu<a href="/tag/dio/" target="_blank" class="keywords">dio</a>();
}
}
}
dio() 方法显式的告诉服务端数据传送结束。
效果。服务器端通过 OnPartialResponseReceived 事件不断把识别的结果发送到客户端。比如 demo 中演示的 ShortPhrase 模式实例,我们会得到下面的中间结果(在上面的输出框中):
--- Partial result received by OnPartialResponseReceivedHandler() ---
<span style="color: #ff0000">what's
--- Partial result received by OnPartialResponseReceivedHandler() ---
<span style="color: #ff0000">what's the weather
--- Partial result received by OnPartialResponseReceivedHandler() ---
<span style="color: #ff0000">what's the weather like
调用了 EndAudio() 函数。语音识别服务在完成识别后会触发 OnResponseReceived 事件,我们通过下面的函数把结果输出到 UI 中:
属性,比如我们可以根据 Confidence 属性判断识别的结果是否可靠:
内容和 ShortPhrase 模式类似。更详细的内容请大家直接看代码吧,很简单的。
支持语言
中文支持还是比较全面的,现在支持的所有模式都支持中文。如果你还有其它需求,可以从查看详细的语言支持列表。