from aip import AipSpeech
import os


# 读取语言文件
def get_file_content(filePath):
    with open(filePath, 'rb') as fp:
        return fp.read()


# 填写你自己的语音处理应用APP_ID API_Key和Secret_Key
APP_ID = ''
API_Key = ''
Secret_Key = ''
# 建立AipSpeech对象
client = AipSpeech(APP_ID, API_Key, Secret_Key)
fileName = input('输入语音文件名：')
filePath = './sound/' + fileName
# 将输入文件和格式转换后的输出文件相对路径转成绝对路径
inputAbsPath = os.path.abspath(filePath)
outputAbsPath = os.path.abspath('./sound/output.pcm')
# 执行fmpeg命令转换语音文件
cmd = 'ffmpeg -y -i %s -acodec pcm_s16le -f s16le -ac 1 -ar 16000 %s' % \
      (inputAbsPath, outputAbsPath)
os.system(cmd)
# 调用百度AI语音识别接口
result = client.asr(get_file_content('./sound/output.pcm'), 'pcm', rate=16000)
# 如果接口调用成功，输出文字，否则，输出错误原因
if result['err_no'] == 0:
    print(result['result'][0])
else:
    print('语音识别错误,原因:', result['err_msg'])
