当语音助手遇到机器人

本文涉及的产品
小语种识别,小语种识别 200次/月
文档理解,结构化解析 100页
车辆物流识别,车辆物流识别 200次/月
简介: 当语音助手遇到机器人

当语音助手遇到机器人


大家都知道现在智能手机都有语音助手,Mac 有 Siri,Windows 有小冰,那么这些语音助手遇到机器人会发生哪些有趣的对话呢?这里我们请来了图灵机器人


http://www.tuling123.com/)和 Siri 语音助手完成一次有趣的对话。


使用的到技术


图灵机器人使用的是文字输入而 Siri 使用的是语音输入,需要文字转语音和 Siri 截图识别文字。下图为程序的大致流程:


image.png


使用到的技术有:


  1. 图灵机器人(http://www.tuling123.com/)的 API 接口
  2. 百度 AI开放平台的语音合成接口、OCR文字识别接口
  3. ImageGrab 截图
  4. 文件传输


导入的模块有:


from PIL import ImageGrabimport requestsimport base64from urllib.parse import quote_plus


图灵机器人 API


图灵机器人登录后创建机器人并复制 apiKey。


image.png


我们使用 API V2.0接入,接口的地址是:

http://openapi.tuling123.com/openapi/api/v2,用 POST 方式请求,这里使用文本方式向机器人发送消息。



def tuling():    """    图灵机器人    :return:    """
    host = 'http://openapi.tuling123.com/openapi/api/v2'    data = {        "reqType":0,              # 输入类型:0-文本(默认)、1-图片、2-音频        "perception": {           # 输入信息            "inputText": {        # 文本信息                "text": "嗨,Siri!"            }        },        "userInfo": {              # 用户信息            "apiKey": "8d78a28535c947e69c2ddbcc5efeed51",            "userId": "1234567"        }    }    response = requests.post(host, json=data)    if response:        return response.json()['results'][0]['values']['text']    else:        return '错误了!'


示例结果


[{'groupType': 1, 'resultType': 'text', 'values': {'text': '我的手机没有siri'}}]


语音在线合成


在百度 AI 开放平台中有一个在线语音合成,这款 API 可以将文本转换成音频,我们这里将图灵机器人返回的结果转成 MP3 格式音频。创建好百度应用之后复制 api_key 和 secret_key 获取 token。


def fetch_token():    """    获取token    :return: token    """    access_token = ""
    api_key = 'Pd4uoyvt1cwD7n2sHtLd5Ov0'    secret_key = '8BnaPRcv3tTNa94eaFVfFy1pW2UkmvrO'
    token_url = 'http://openapi.baidu.com/oauth/2.0/token'    params = {'grant_type': 'client_credentials',              'client_id': api_key,              'client_secret': secret_key}    response = requests.post(token_url, post_data)    if response:        access_token = response.json()['access_token']    return access_token
def synthesized_speech(text, token):    """    合成语音    """
    # 保存的文件路径    mp3_path = "/Users/xx/Desktop/siri/result.mp3"    tts_url = 'http://tsn.baidu.com/text2audio'
    tex = quote_plus(text)  # 此处TEXT需要两次urlencode    # tok:token,tex:文本,per:发音人,spd:语速(0-15)默认 5,pit:音调(0-15)默认 5,    # vol:音量(0-9)默认 5,aue:下载的文件格式, 3 mp3(default)、4 pcm-16k、5 pcm-8k、6 wav,    # cuid:用户唯一标识,lan ctp 固定参数    params = {'tok': token, 'tex': tex, 'per': 4, 'spd': 5, 'pit': 5, 'vol': 5, 'aue': 3, 'cuid': "pythonjishu", 'lan': 'zh', 'ctp': 1}
    response = requests.post(tts_url, params)    if response:        with open(mp3_path, 'wb') as of:            of.write(response.content)


文件传输

在 Mac 上 Siri 和音频同时操作是行不通的,此时播放音频文件没有声音,我们必须把音频文件传输到第二台电脑上。这时在命令行输入 python3 -m http.server 把当前电脑做一个简易的服务器。


python3 -m http.server

在第二台电脑浏览器上输入 http://IP地址:8000/,并找到音频文件播放。


http://IP地址:8000/http://192.168.1.102:8000/Desktop/siri/result.mp3


image.png


截图

当 Siri 听到声音后会在最后一行返回结果,我们需要将 Siri 界面截图和识别文字。


def grab_img():    """    截图    :return:    """        img_path = "/Users/xx/Desktop/siri/grab.png"    # bbbox 的参数为截取屏幕的一部分,距离左边像素,上边像素,右边像素,下边像素        img = ImageGrab.grab(bbox=(2630,80,3330,1290))    img.save(img_path)    return img_path


文字识别


将 Siri 截图后需要识别最后一行文字,这里使用百度 AI 开放平台的 OCR(还是和上面语音合成一样创建应用后复制 api_key 和 secret_key)将这段结果传输给图灵机器人,一段对话就完成了。


微信图片_20220213114309.jpg


def fench_ocr_token():
    """
    获取ocr token
    :return: token
    """
    api_key = 'ioE84jDQmGNLG7heN6rovF9Q'
    secret_key = 'qGVyAobVtCGKdD1Ncz60IvGMdf3dP1ct'
    access_token = ""
    url = 'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id='+api_key+'&client_secret='+secret_key
    response = requests.get(url)
    if response:
        access_token = response.json()['access_token']
    return access_token
def ocr(img_path, access_token):
    """
    通用文字识别
    :return: 识别后的文字
    """
    text = ""
    request_url = "https://aip.baidubce.com/rest/2.0/ocr/v1/general_basic"
    # 二进制方式打开图片文件
    f = open(img_path, 'rb')
    img = base64.b64encode(f.read())
    params = {"image":img}
    request_url = request_url + "?access_token=" + access_token
    headers = {'content-type': 'application/x-www-form-urlencoded'}
    response = requests.post(request_url, data=params, headers=headers)
    if response:
        words_result = response.json()['words_result']
        text = words_result[-1]['words']
    return text


示例结果


最后一行取最后一个words
[{'words': '股市'}, {'words': 'Apple公司的股票价格”'}, {'words': '时钟'}, {'words': '“柏林现在几点钟?”'}, {'words': '通讯录'}, {'words': '“秦葳住在哪里?”'}, {'words': '查找'}, {'words': '“我的 iPhone在哪里?'}, {'words': '备忘录'}, {'words': '“记下我午餐花了12块钱”'}, {'words': '网络搜索'}, {'words': '“上网查找北极熊”'}, {'words': '问与答'}, {'words': '公斤等于多少磅?”'}, {'words': '播客'}, {'words': '播放播客”'}, {'words': '密码'}, {'words': '“显示我的密码”'}, {'words': '嗨S'}, {'words': '嗨,Si很高兴见到你。'}]


总结


这个 Python 程序并不复杂只需要使用多个 API 接口。希望小伙伴们都可以放开思维写各种 Python 小程序练手。


目录
相关文章
|
人工智能 机器人 语音技术
ai智能语音机器人运营的核心
​  运营机器人核心关注的只有两个点,一个是机器人话术库的关键词是否充足,二是对录音的高要求。每一个话术,都把它当成一个重要的项目来做。比如做需求调研,学习客户的行业知识,了解他们这个行业打电话的语气语调。其它的东西,能拿出来运营的机器人产品,核心的东西都不会差到哪去。有关系统问题欢迎看博主名字一起技术交流。![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/e1589ad7c9f1423bb24c7f5f6a2bcc42~tplv-k3u1fbpfcp-jj-mark:0:0:0:0:q75.image#?w=814&h=232&s=
ai智能语音机器人运营的核心
|
存储 人工智能 搜索推荐
AI智能语音机器人的基本业务流程
先画个图,了解下AI语音机器人的基本业务流程。 上图是一个AI语音机器人的业务流程,简单来说就是首先要配置话术,就是告诉机器人在遇到问题该怎么回答,这个不同公司不同行业的差别比较大,所以一般每个客户都会配置其个性化的话术。 话术配置完成后,需要给账号配置线路,目的就是能够顺利的把电话打出去。 线路配完后,就是建立任务了,说白了就是导入电话号码,因为资源有限,不可能导入一批立即打完,所以需要以任务的形式分配给机器人,然后机器人逐个完成。值得一提的是,如果有多条线路,创建任务时建议提供线路选择功能,很多公司的业务不止一个城市,而大家又是比较习惯接听自己所在城市的电话,所以这个选择主
|
26天前
|
人工智能 机器人 Shell
AI语音机器人安装方法 AI机器人安装代码
AI语音机器人安装方法 AI机器人安装代码
28 2
|
28天前
|
人工智能 自然语言处理 机器人
手把手带你搭建一个语音对话机器人,5分钟定制个人AI小助手(新手入门篇)
本文介绍了如何从零开始搭建一个语音对话机器人,涵盖自动语音识别(ASR)、自然语言处理(NLP)和文本到语音合成(TTS)三大核心模块。通过使用开源工具如FunASR、LLaMA3-8B和ChatTTS,以及FastAPI和Gradio等技术,详细指导读者轻松实现个人AI小助手的构建,适合技术新手快速上手。
202 1
|
人工智能 机器人 语音技术
AI智能语音机器人有什么优势呢
1.高效自动拨号功能。 导入客户数据,外呼机器人自动拨号,无需看守,真人录音话术,定制场景问答和1秒内的问答响应,为客户带来真实准确的咨询体验。同时,每次通话结束后,外呼系统根据通话时间和关键词将拨号对象分级,实时推送到企业微信,提醒坐席及时跟进。有关系统问题欢迎和博主进行技术交流。 kelaile520 2.实时反馈和及时迭代   外呼机器人每次呼叫都会保留录音,文本翻译会立即显示在后台。通过听录音和看翻译,我们可以知道语音设置是否符合对话场景,从而调整、补充和优化话术。经过多次迭代和优化,外呼机器人将更加灵活,这是大家说机器人聪明的关键步骤。 3.准确的语音识别   
|
人工智能 机器人 语音技术
AI智能机器人使用语音消息的四种方式
经常接到AI机器人电话,基本都是TTS转的语音,一听就知道是机器人,如果我不是有主观需求,是懒得跟机器人沟通的,那如何让AI机器人外呼更有效一些呢? 1、话术设计 文字类的提醒,是很容易让人忘记的,比如以前的电子邮件,现在的短信,甚至加了微信的好友,也会容易忘记,不是说语音消息不会被忘记,只是它能在人们的大脑里停留的时间更长一些。 中国各城市的方言众多,目前很少做到细分的方言支持,针对性的方言会更有亲和力些,同时话术设计上,如何让客户印象更深刻。 2、信息查询 目前不少大型企业,服务类的(比如物流、金融、教育、运营商等)企业都有AI机器人的信息查询接口。 3、收集客户的意见反馈
|
人工智能 机器人 UED
ai智能语音机器人系统都有什么功能?
第一、 智能AI电销机器人的并发量是多少啊?别人可以同时呼出几个? 通常情况下,智能AI电销机器人可以根据客户的需要选择客户需要的外呼并发量,最大可以实现一条宽带,一个主机,可以同时保持客户使用的灵活性,即能兼顾效率,也能兼顾成本控制。 第二、可以转人工?对话时可以打断机器人吗? 转人工和中途打断都是可以的,这些都是电话机器人的基本功能,个人不建议您用转人工的功能,因为每次转人工,机器人都要等到这通转接人工通话结束后才会进行下一通的呼出,这就大大降低了机器人的拨打效率了。所以留给后续人工跟进是最合理的。打断功能是客户说任何内容都能打断的,为了保证一个良好的用户体验度,一些无意义的语气
|
人工智能 机器人 语音技术
AI机器人系统服务企业使用语音消息的方式
经常接到AI机器人电话,基本都是TTS转的语音,一听就知道是机器人,如果我不是有主观需求,是懒得跟机器人沟通的,那如何让AI机器人外呼更有效一些呢?
|
机器人 语音技术 Android开发
App Inventor 2 语音交互机器人Robot,使用讯飞语音识别引擎
App Inventor 2 语音识别及交互App。识别语言指令并控制机器人运动,主要用到语音识别器及文本朗读器组件,语音识别相关开发最佳入门。代码逻辑简单,App交互性及趣味性非常强~
252 0
|
人工智能 机器人 应用服务中间件
AI语音机器人安装方法 AI机器人安装代码
AI语音机器人安装方法 AI机器人安装代码
10 0
AI语音机器人安装方法 AI机器人安装代码
下一篇
DataWorks