目录

基于google云平台实现音频转文字

基于google云平台实现音频转文字

一、注册账号

  1. 打开https://console.cloud.google.com

  2. 首先要注册google账号,有gmail就可以直接用;

  3. 使用云平台服务需要填写一些信息,其中绑定信用卡是关键,最好使用VISA卡。当然google的说法是确定非机器人操作,并不会扣款;

二、新建工程

初次进入时会要求新建工程,如无特殊要求使用默认名称也可以。

https://i-blog.csdnimg.cn/blog_migrate/6569358d4270d78acecc45f6115abe27.png

三、生成密钥

在调用云平台API时要有身份认证,依据便是密钥。密钥生成以后记得复制下来,后面调用API时要用到。

https://i-blog.csdnimg.cn/blog_migrate/8a8b2dad5185b561826b6f628d4fcd79.png

四、启用API

google云平台包含了相当多的服务,而我们本次的目的是实现将音频识别为文字,所以需要查找并添加speech recognition方法。

  1. 在左侧菜单的“API和服务”下找到“库”,并输入“speech recognition"。
  2. 点击进入后选择启用即可。

https://i-blog.csdnimg.cn/blog_migrate/61f0792e4993abaa1935a38ff4229ab9.png

五、准备音频文件

speech-to-text API对音频文件的编码格式有具体的要求。

https://i-blog.csdnimg.cn/blog_migrate/a68d0e9a78ae1c95ace7763d9c90e0f9.png

无论是录音还是从影视文件中分离音频出来,都必须按照上述格式选取一种进行编码。

我使用的是开源工具ffmpeg进行音频处理,示例如下:

ffmpeg -i one.mp3 -ss 00:03:00 -t 30 -ac 1 -ar 16000 -f flac one4.flac

命令行解释:

-ss:要处理的起始位置,示例中表示从第3分钟开始处理;

-t:要处理的时长,示例中表示处理30秒的内容;

-ac:单声道mono设置;

-ar:采样率为16000

-f:文件封装格式为flac

https://i-blog.csdnimg.cn/blog_migrate/c2e17531a7ce23255e9080e6e04a4ca6.png

参考网址:

六、开通存储并上传文件

文件处理好之后便可以通过预先上传到google云存储上再进行处理。打开左侧“存储”->“浏览器”,选择创建存储分区,会要求输入一个不可重复的名称。创建成功以后就可以上传文件了。上传以后一个重要的步骤便是要设置文件可以公开访问了,否则音频到文本的转换会失败,报访问权限受限错误。

  1. 在右侧选择“修改权限”项;

https://i-blog.csdnimg.cn/blog_migrate/c3e7c6988d8dedfa1c7f5d548fa4f77c.png

  1. 点击“添加一项”,名称设置为“allUsers",访问权限为读取者。

https://i-blog.csdnimg.cn/blog_migrate/b8b46862ed3ec81cba47206843157f88.png

https://i-blog.csdnimg.cn/blog_migrate/a7657cbd8691dcf1145cde75524dcff1.png

七、调用API完成转换工作

  1. 首先编辑一个配置json文件,内容如下:
{
  "config":
  {
    "encoding":"FLAC",
    "sampleRateHertz": 16000,
    "languageCode":"cmn-Hans-CN"
  },

"audio":
{
"uri":"gs://audio_migu/one4.flac"
}
}
  1. 使用 curl 命令行进行 API 调用的工作,示例如下:
curl -H "Content-Type: application/json" -d @config.json "https://speech.googleapis.com/v1/speech:recognize?key=AIzaSyA7baQsAp"

注意:key 值便是第三步生成的密钥值。

等待一段时间后会有结果返回,我是从一段影视文件中截取的 30 秒内容,从结果来看并不理想,不过也可能是时长不够,仅供参考:

{
"results": [
{
"alternatives": [
{
"transcript": "柔然发来西文称陛下是符串位同室操戈正山东各方陶华碧想和任泉岗工人背叛",
"confidence": 0.94101095
}
]
},
{
"alternatives": [
{
"transcript": "大成功显然",
"confidence": 0.74435216
}
]
},
{
"alternatives": [
{
"transcript": "电邮他们一个动力臂下原列王子后来进重我大会想来这次对比一下只执行 Ruby 下能释放高阳王让高阳王对只小雨大雨",
"confidence": 0.91948324
}
]
}
]
}

参考网址: