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"))

 

posted @ 2019-07-16 22:57  Amorphous  阅读(475)  评论(0编辑  收藏  举报