Bing Speech Api

来源:互联网 发布:js input 隐藏属性 编辑:程序博客网 时间:2024/05/18 01:47
最近搜罗了一些在线语音识别的服务平台,比如:讯飞语音、百度语音、Google Speech、Bing Speech. 找这些平台主要是为了给一些没有文字稿的德文音频生成自动字幕。Google和Bing都支持德文。我先试用的是Google,网上教程比较多,不多说了,这里就放一个传送门:

https://github.com/gillesdemey/google-speech-v2/

但是上个Google实在不容易。因而我研究了一下Bing。百度了一下,发现还没什么人写过相关的教程。其实方法也很简单。先贴官网文档的地址:

https://www.microsoft.com/cognitive-services/en-us/speech-api/documentation/api-reference-rest/bingvoicerecognition

官方的文档写的还是很具体的,会用的应该一看就懂。我就在这里做个简单的Tutorial。


0  简述

简单的说就是利用REST API,通过Http接口发起语音认知请求。

具体步骤:获得授权码-->POST语音识别请求-->获得认知结果

免费的Bing Speech服务支持5000次/月的识别请求,单次请求的语音长度不超过10秒。显然,这更适合语音命令识别。不过这里我强行拿来给一般音频文件加字幕。

本文需要用到的工具(cURL和SoX):

链接:https://pan.baidu.com/s/1slRLsYD 密码:mf5t

建议解压后,把两个程序所在的目录均加到系统Path中,以便命令行直接调用。

两个都是开源软件,有兴趣的可以去官网下载源码。


1  获得授权码

  • 登陆Bing Speech官网(需要有微软账户):

https://www.microsoft.com/cognitive-services/en-us/speech-api

点击右上角Get started for Free。在API选择栏目中选上Bing Speech。这样就可以免费使用Bing语音识别了。这时,在API管理页面可以看到刚才选中的Bing Speech了。


 这里的key1和key2是订阅key,用这个key可以获得一个10分钟时效的授权码。这里单击key1或key2后面的Copy按钮,等下需要用它来申请授权码。
  • 申请授权码需要用到cURL,格式如下(请将YourKey替换为刚才Copy的key):

curl.exe -X POST --header "Content-Length: 0" --header "Ocp-Apim-Subscription-Key:YourKey" "https://api.cognitive.microsoft.com/sts/v1.0/issueToken"

执行成功,会得到一长条字符,这就是base64加密的授权码access_token。把这串字符不多不少的复制下来。(10分钟有效,超时需要再获得一次)

 

2  POST语音识别请求
1. 准备音频文件
Bing Speech支持PCM single channel、Siren、SirenSR。这里介绍MP3转WAV(16bit PCM)和切割音频文件的方法。均用到SoX。
  • MP3转WAV(16bit PCM)

sox.exe -V originalMP3.mp3 --encoding signed-integer --bits 16 --channels 1 --rate 16000 newWAV.wav

"-V"显示处理过程信息
"originalMP3.mp3"要转换的源文件
"--encoding signed-integer ... --rate 1600"编码类型、位数、通道和采样率
"newWAV.wav"转换结果文件
  • 切割音频文件

sox.exe originalFile.wav trimFile.wav trim 45 10

"originalFile.wav"要切割的源文件
"trimFile.wav"切割后的文件
"trim 45 10"从第45秒开始切取10秒
2. 发起语音识别请求(请将access_token替换为第一步中获得的授权码
注:超过10分钟需要重新获取授权码

curl.exe -X POST --data-binary @test.wav --header "Content-Type: audio/wav; samplerate=16000" --header "Authorization: Bearer access_token" "https://speech.platform.bing.com/recognize?scenarios=catsearch&appid=f84e364c-ec34-4773-a783-73707bd9a585&locale=de-DE&device.os=wp7&version=3.0&format=json&requestid=1d4b6030-9099-11e0-91e4-0800200c9a66&instanceid=1d4b6030-9099-11e0-91e4-0800200c9a66"

"test.wav" 处理好的不大于10秒的音频文件
"Content-Type: ..."指明音频文件类型和采样率
"Authorization: Bearer ..."授权码
"https://speech.platform.bing.com/recognize?..."API地址(问号后面是参数)
具体参数:
Version, requestid, appID, device.os, scenarios, instanceid均为必选参数,如果只是试玩,照抄就行了。
format=json指明返回值为json格式。(可以选xml)
locale=de-DE指明音频的语言为德语(美式英语en-US,日语ja-JP)
目前支持语言如下:


3  获得认知结果
 执行之后,等待一会儿就可以得到结果。比如:


试了几个文件,效果一般,感觉没有谷歌的识别能力强。就当试玩~期待以后能够有更好的识别能力。
 





1 0
原创粉丝点击