Google Cloud Speech API是由谷歌云平台提供的,利用机器学习技术将语音转换为文字的服务。这个API能识别超过80种语言和语言变体,包括中文、日语、英语甚至广东话。此次,我总结了使用Google Cloud Speech API的基本流程。html
在Cloud Speech API概览页,咱们能够体验将语音转换为文字的效果。只须要选择一种语言便可开始使用,甚至不须要登陆谷歌帐号。(加载出来须要一些时间)编程
使用Cloud Speech API须要登陆谷歌云平台并申请免费试用,申请试用谷歌云平台的流程能够参考这篇文章 。json
咱们假定你可以使用谷歌云平台,而且已经建立了一个项目,下面介绍如何把Cloud Speech API添加到项目中。segmentfault
点击控制台左上角的 ☰
打开导航栏,找到 API和服务
→ 库
。api
在搜索框中键入 Speech
便可找到 Cloud Speech API
。浏览器
打开API页面,点击 启用
。app
回到以前的页面,选择 凭据
→ 建立凭据
→ API密钥
。curl
立刻 API密钥
就建立好了,虽然随时都能在这个页面查询,但为了方便起见,将其记录下来备用吧,很快就要用到它。机器学习
限制密钥
选项默认状况下应该是“无”,此次只是试着使用API,保持默认“无”便可。编程语言
虽然有些麻烦,可是接下来咱们要准备声音文件。Cloud Speech API没办法直接识别mp三、mp4中的声音,咱们须要准备FLAC、WAV格式的音频。并且仅支持单声道音频,因此通常都须要转码之类的工做。
详细的声音文件要求参见:AudioEncoding | Google Cloud Speech API
基于上述状况,我读了下面这段文稿,并制成了FLAC格式(单声道)的声音文件。是用手机麦克风进行录音的,质量通常(´・ω・`) 是否能够正确识别呢?
寄蜉蝣于天地,渺沧海之一粟。哀吾生之须臾,羡长江之无穷。挟飞仙以遨游,抱明月而长终。
若是要使用Cloud Speech API识别本地声音文件,必须将音频文件编码为base64,而后嵌入到稍后将建立的json请求文件中,这虽然可行但并不方便。若是你想使用这种方法,请参考:Embedding Base64 encoded audio | Google Cloud Speech API
咱们将使用另外一种方案,将声音文件上传到Google Cloud Storage。
点击控制台左上角的 ☰
打开导航栏,找到 存储
→ 浏览器
。
点击 建立存储分区
。
输入合适的 存储分区名称
,后文将要用到。默认存储类别选择"Multi-Regional",Multi-Regional位置选择"亚洲"。点击 建立
。
点击 上传文件
,上传声音文件,勾选 公开连接
。(该音频将能被任何人访问,请注意)
2018年10月18日更新:
刚看了一下,页面有所改变,暂时没找到公开单个音频文件的方法。
你能够这样作,把整个存储分区公开:
导航栏→存储→浏览器→存储分区最后有个选项,点开来→修改存储分区权限→“添加成员”填“allUsers”,“角色”选“存储对象查看者”→添加
注意:这样该分区内全部内容均可能被任何人访问到
另外,请记住上传文件的 文件名
,后文将用到。
终于,可使用Cloud Speech API将语音转换为文字了。
首先,咱们新建一个json格式的请求文件(request.json)。文件名无特殊要求。
{ "config": { "encoding":"FLAC", "languageCode":"cmn-Hans-CN" }, "audio": { "uri":"gs://存储分区名称/文件名" } }
注意3个地方:
cmn-Hans-CN
:表示识别语言为中文普通话。经常使用的还有American English (en-US
)、British English (en-GB
)、日本語(ja-JP
)、廣東話(yue-Hant-HK
)。更多语言支持能够在Language Support | Google Cloud Speech API查询。
存储分区名称
:刚才是否有记录下来呢?若是没有记住能够点击控制台左上角的 ☰
打开导航栏,找到 存储
→ 浏览器
查看。
文件名
:存储在Cloud Storage中的音频文件名,能够在存储分区中查看。
最后,咱们使用curl命令(Windows平台需另外安装)向Cloud Speech API发出请求。
cd到json请求文件所在目录。
curl -H "Content-Type: application/json" -d @request.json
"https://speech.googleapis.com/v1/speech:recognize?key=API密钥
"
注意2个加粗处:
request.json
:json请求文件的文件名。
API密钥
:替换为你记录下来的API密钥。若是没有记下来,能够点击控制台左上角的 ☰
打开导航栏,找到 API和服务
→ 凭据
查看。
获得结果:
能够看到返回结果也是json格式的数据。"confidence"是置信度,越接近1准确性越高。
第一次尝试语音识别服务,获得结果的时候很开心。或许有人会惊讶上例语音识别的准确性,但正如文章开头所说“Cloud Speech API是利用机器学习技术将语音转换为文字的服务”,像上例中这样的俗语、名著甚至是歌词,准确率都出奇地高。若是你录制一段平常语音交给Cloud Speech API识别,结果就不那么满意了。
最后,此次只是使用curl命令在LX终端得到了识别结果,下次将会总结如何在编程语言中使用Cloud Speech API。
感谢你阅读文章!