Python调用AI百度接口以及图灵接口的使用

AI智能种类方向

耳朵 = 倾听 = 麦克风 = 语音识别 ASR:Automatic Speech Recognition
嘴巴 = 诉说 = 扬声器 = 语音合成 TTS:Text To Speech
眼睛 = 观察 = 摄像头 = 图像识别 IR:Image Recognition
思考 = 理解 = 逻辑处理 = 自然语言处理:NLP Natural Language Processing
更多种类方向详见百度AI开放平台文档https://ai.baidu.com/docs#/

以下均为使用百度AI开放平台:https://ai.baidu.com/ 以及图灵机器人:http://www.turingapi.com/ 且需导入baidu-aip包,用pip3 install baidu-aip

ASR语音识别

文档帮助

https://ai.baidu.com/docs#/ASR-Online-Python-SDK/top

步骤

  • 首先需要将录好的音频文件格式转换为”pcm”格式,用到了ffmpeg工具,解压后直接剪切文件夹到自定义的目录下,然后切换到文件夹中的bin目录下,复制路径添加到path中。

ffmpeg下载地址:链接: https://pan.baidu.com/s/1HQhbcrj806OWCTzJDEL5vw 提取码: 2333

转换语音文件代码

import os

filepath = input('请输入文件路径:')
print(filepath)
filename = filepath[:-4:]  # 仅限于m4a格式,可根据文件格式后缀长度更改
print(filename)
cmd_pcm = f"ffmpeg -y -i {filepath} -acodec pcm_s16le -f s16le -ac 1 -ar 16000 {filename}.pcm"
os.system(cmd_pcm)
print('格式更改完成!')
  • 转换好以后,在ASR语音识别代码中用到:
from aip import AipSpeech


""" 你的 APPID AK SK """
APP_ID = '你的ID'
API_KEY = '你的KEY'
SECRET_KEY = '你的KEY'

client = AipSpeech(APP_ID, API_KEY, SECRET_KEY)


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


# 识别本地文件
filepath=input('请输入语音文件路径:')
res=client.asr(get_file_content(filepath), 'pcm', 16000, {
    'dev_pid': 1536,
})


print(res.get('result')[0])

TTS语音合成

文档帮助

https://ai.baidu.com/docs#/TTS-Online-Python-SDK/top

代码

import os
from aip import AipSpeech

""" 你的 APPID AK SK """
APP_ID = '需要更改处'
API_KEY = '需要更改处'
SECRET_KEY = '需要更改处'

client = AipSpeech(APP_ID, API_KEY, SECRET_KEY)

content = input('请输入需要转换成语音的内容:')
result = client.synthesis(content, 'zh', 1, {
    'vol': 5,
})

# 识别正确返回语音二进制 错误则返回dict 参照下面错误码
if not isinstance(result, dict):
    with open(os.getcwd() + '\statics\\TTS.mp3', 'wb') as f:
        f.write(result)

print('转换完成!')

NLP自然语言处理

文档帮助

https://ai.baidu.com/docs#/NLP-Python-SDK/top

代码

from aip import AipNlp

""" 你的 APPID AK SK """
APP_ID = '需要更改'
API_KEY = '需要更改'
SECRET_KEY = '需要更改'

client = AipNlp(APP_ID, API_KEY, SECRET_KEY)
text1 = input('输入对比的字段1:')
text2 = input('输入对比的字段2:')
res = client.simnet(text1, text2)
print(res)
print(res.get('score'))

图灵接入

文档帮助

https://www.kancloud.cn/turing/www-tuling123-com/718227

代码

import requests

question=input('输入想要提问的问题:')

data = {
    "reqType": 0,
    "perception": {
        "inputText": {
            "text": question
        },
        "inputImage": {
            "url": "imageUrl"
        },
        "selfInfo": {
            "location": {
                "city": "北京",
                "province": "北京",
                "street": "信息路"
            }
        }
    },
    "userInfo": {
        "apiKey": "需要更改",
        "userId": "需要更改"
    }
}
res = requests.post('http://openapi.tuling123.com/openapi/api/v2', json=data)
res_dict = res.json()
print(res_dict.get("results")[0].get("values").get("text"))

语音加图灵结合

import requests
from aip import AipSpeech


def Asr():
    """ 你的 APPID AK SK """
    APP_ID = '需要更改'
    API_KEY = '需要更改'
    SECRET_KEY = '需要更改'

    client = AipSpeech(APP_ID, API_KEY, SECRET_KEY)

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

    # 识别本地文件
    filepath = input('请输入语音文件路径:')
    res = client.asr(get_file_content(filepath), 'pcm', 16000, {
        'dev_pid': 1536,
    })
    return res.get('result')[0]


data = {
    "reqType": 0,
    "perception": {
        "inputText": {
            "text": Asr()
        },
        "inputImage": {
            "url": "imageUrl"
        },
        "selfInfo": {
            "location": {
                "city": "北京",
                "province": "北京",
                "street": "信息路"
            }
        }
    },
    "userInfo": {
        "apiKey": "需要更改",
        "userId": "需要更改"
    }
}
res = requests.post('http://openapi.tuling123.com/openapi/api/v2', json=data)
res_dict = res.json()
print(res_dict.get("results")[0].get("values").get("text"))

结果

图灵

图灵后台

百度

百度后台

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值