对博客平台有些失望,转语雀只当留档用了。
Google Cloud Speech API是由谷歌云平台提供的,利用机器学习技术将语音转换为文字的服务。这个API能识别超过80种语言和语言变体,包括中文、日语、英语甚至广东话。这次,我总结了使用Google Cloud Speech API的基本流程。
花5秒钟试用Cloud Speech API吧
在Cloud Speech API概览页,我们可以体验将语音转换为文字的效果。只需要选择一种语言即可开始使用,甚至不需要登录谷歌账号。(加载出来需要一些时间)
在项目中添加API
使用Cloud Speech API需要登录谷歌云平台并申请免费试用,申请试用谷歌云平台的流程可以参考这篇文章 。
我们假定你能够使用谷歌云平台,并且已经创建了一个项目,下面介绍如何把Cloud Speech API添加到项目中。
点击控制台左上角的 ☰
打开导航栏,找到 API和服务
→ 库
。
在搜索框中键入 Speech
即可找到 Cloud Speech API
。
打开API页面,点击 启用
。
创建API密钥
回到之前的页面,选择 凭据
→ 创建凭据
→ API密钥
。
马上 API密钥
就创建好了,虽然随时都能在这个页面查询,但为了方便起见,将其记录下来备用吧,很快就要用到它。
限制密钥
选项默认情况下应该是“无”,这次只是试着使用API,保持默认“无”即可。
准备声音文件
虽然有些麻烦,但是接下来我们要准备声音文件。Cloud Speech API没办法直接识别mp3、mp4中的声音,我们需要准备FLAC、WAV格式的音频。而且仅支持单声道音频,所以一般都需要转码之类的工作。
详细的声音文件要求参见:AudioEncoding | Google Cloud Speech API
基于上述情况,我读了下面这段文稿,并制成了FLAC格式(单声道)的声音文件。是用手机麦克风进行录音的,质量一般(´・ω・`) 是否可以正确识别呢?
寄蜉蝣于天地,渺沧海之一粟。哀吾生之须臾,羡长江之无穷。挟飞仙以遨游,抱明月而长终。
将声音文件上传到Cloud Storage
如果要使用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。
感谢你阅读文章!
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。