QQ_2780619724 2021-06-25 20:27 采纳率: 0%
浏览 12

百度语音识别, SDK是否封装 30天后 对token的重新获取?还是要自己写代码去获取token?

调用  百度语音识别 接口时,我用的是  集成python SDK 的方式 (pip install baid-aip), dem代码如下:

 

from aip import AipSpeech
 
""" 你的 APPID AK SK """
APP_ID = 'xxxxxxx'
API_KEY = 'xxxxxxxxxxxxxx'
SECRET_KEY = 'xxxxxxxxxxxxxxxxxx'
 
client = AipSpeech(APP_ID, API_KEY, SECRET_KEY)
 
 
# 读取音频文件
with open('output.wav', 'rb') as fp:
        au = fp.read()
 
# wav格式,16000采样频率,1537表示普通话。 这3个要和语音文件的内容保持一致。
res = client.asr(au, 'wav', 16000, {'dev_pid': 1537})

print('识别结果:' + ''.join(res['result']))

以上代码能正确识别语音转字符串。 官网说 Access token 的有效期是30天,如下。

 

我看  SDK 源码,里面有对token有效期的判断 ( 如果未过期直接返回,过期则重新获取token ),如下:

 

由于不能完全看懂源码,所以想知道: 我的demo程序 ,30天后再run会不会报 token错?

 

  • 写回答

1条回答 默认 最新

  • 码农阿豪 Java领域优质创作者 2024-03-06 16:35
    关注
    让阿豪来帮你解答,本回答参考chatgpt3.5编写提供,如果还有疑问可以评论或留言
    根据SDK源码中的判断,如果30天后再次运行程序,SDK会尝试重新获取新的Access Token,因此程序不会报Token错误。SDK中的判断代码如下:
    if t > int(time.time()):
        return self._authobj
    else:
        return self._refresh()
    

    其中t是当前时间减去上次获取Token的时间和Token的有效期的和,表示Token还剩余多少秒。如果t大于0,则表示Token未过期,直接返回旧的Token。如果t小于等于0,则表示Token已经过期,调用_refresh()方法重新获取新的Token。

    评论

报告相同问题?

悬赏问题

  • ¥15 求学软件的前人们指明方向🥺
  • ¥50 如何增强飞上天的树莓派的热点信号强度,以使得笔记本可以在地面实现远程桌面连接
  • ¥15 MCNP里如何定义多个源?
  • ¥20 双层网络上信息-疾病传播
  • ¥50 paddlepaddle pinn
  • ¥20 idea运行测试代码报错问题
  • ¥15 网络监控:网络故障告警通知
  • ¥15 django项目运行报编码错误
  • ¥15 STM32驱动继电器
  • ¥15 Windows server update services