flask与ai初始(百度接口)
一、python安装百度ai的api接口
# baidu-aip安装:
pip install baidu-aip
二、百度api注册
目前市面上主流的AI技术提供公司有很多,比如百度,阿里,腾讯,主做语音的科大讯飞,做只能问答的图灵机器人等等
这些公司投入了很大一部分财力物力人力将底层封装,提供应用接口给我们,尤其是百度,完全免费的接口
开启人工智能技术的大门 : http://ai.baidu.com/
创建测试应用实例:
应用列表:
这里面有三个值 AppID , API Key , Secret Key 记住可以从这里面看到,会在Python SDK技术文档中使用
三、语音合成实例
api地址:https://ai.baidu.com/docs#/TTS-Online-Python-SDK/top
from aip import AipSpeech """ 参数配置 """ APP_ID = '16877775' API_KEY = 'SDMcxxxxcxxxxTQjceC9AbDjk' SECRET_KEY = '5S9y64ASxxx92YMB8P9f' # 实例化对象 client = AipSpeech(APP_ID, API_KEY, SECRET_KEY) # 调用语音合成函数 result = client.synthesis('hello 百度!', 'zh', 1, { 'vol': 5, "spd": 5, "pit": 5, "per": 4 }) # 打印结果,可以做错误提示 # print(result) # 识别正确返回语音二进制 错误则返回dict 参照下面错误码 if not isinstance(result, dict): with open('audio.mp3', 'wb') as f: f.write(result)
四、语音识别实例
api技术文档地址:https://ai.baidu.com/docs#/ASR-Online-Python-SDK/top
如果要想让百度的SDK识别咱们的音频文件,就要想办法转变成百度SDK可以识别的格式PCM
4.1 FFmpeg工具使用:
FFmpeg 这个工具可以实现音频文件的格式转换,工具的下载地址是 : 链接:https://pan.baidu.com/s/1jonSAa_TG2XuaJEy3iTmHg 密码:w6hk
FFmpeg 环境变量配置:
首先你要解压缩,然后找到FFmpeg 文件中bin目录,我的目录是 C:\ffmpeg\bin,然会配置windows系统的环境变量(path)
测试ffmpeg:
做一个测试,首先要打开windows的录音机,录制一段音频(说普通话)
现在假设录制的音频文件的名字为 audio.wav 放置在 D:\Audio\audio.wav
然后我们用命令行对这个 audio.wav 进行pcm格式的转换然后得到 audio.pcm
cmd窗口命令(文件绝对路径) : ffmpeg -y -i audio.wav -acodec pcm_s16le -f s16le -ac 1 -ar 16000 audio.pcm
最后在D:\Audio\下生成了一个audio.pcm文件
4.2 百度语音识别SDK的实例:
asr函数需要四个参数,第四个参数可以忽略,自有默认值,参照一下这些参数是做什么的
第一个参数: speech 音频文件流 建立包含语音内容的Buffer对象, 语音文件的格式,pcm 或者 wav 或者 amr。(虽说支持这么多格式,但是只有pcm的支持是最好的)
第二个参数: format 文件的格式,包括pcm(不压缩)、wav、amr (虽说支持这么多格式,但是只有pcm的支持是最好的)
第三个参数: rate 音频文件采样率 如果使用刚刚的FFmpeg的命令转换的,你的pcm文件就是16000
第四个参数: dev_pid 音频文件语言id 默认1537(普通话 输入法模型)
from aip import AipSpeech import os """ 你的 APPID AK SK """ APP_ID = '168454585' API_KEY = '3wztEvxxxxxxM49UeXyGh' SECRET_KEY = '5cd7FEsNzUpXxxxxxxxx7pU7kF13LYUd91' # 实例化对象 client = AipSpeech(APP_ID, API_KEY, SECRET_KEY) # 读取文件 def get_file_content(filePath): # 视频转码命令,基于windows系统cmd命令执行 cmd_str = f"ffmpeg -y -i {filePath} -acodec pcm_s16le -f s16le -ac 1 -ar 16000 audio_test.pcm" # 通过python调用系统cmd命令 os.system(cmd_str) # 打开转码后的pcm格式文件 with open("audio_test.pcm", 'rb') as fp: # 读取文件内容 return fp.read() # 识别本地文件音频文件1.m4a resultStr = client.asr(get_file_content('1.m4a'), 'pcm', 16000, { 'dev_pid': 1536, }) # 打印输出结果 print(resultStr["result"])
五、短文本相似度实例
api技术文档地址:https://ai.baidu.com/docs#/NLP-Python-SDK/top
from aip import AipNlp """ 你的 APPID AK SK """ APP_ID = '1634385' API_KEY = '3wztEvYhxxxxxxM49UeXyGh' SECRET_KEY = '5cd7FEsNxxxxxxfQ7pU7kF13LYUd91' client = AipNlp(APP_ID, API_KEY, SECRET_KEY) text1 = "你是谁?" text2 = "你叫什么名字?" """ 带参数调用短文本相似度 """ res = client.simnet(text1, text2) print(res.get("score"))