用scriptable+chatgpt得到一个免费的会说话的GPT

作者:徐翔

前言

在使用ChatGPT时,我们经常遇到需要双手不能释放的情境,这使得我们无法充分发挥ChatGPT的文本输入和输出功能。   然而,随着技术的不断进步,语音识别技术越来越精准和便捷,这为我们实现与ChatGPT的无缝交互提供了可能。

利用语音识别技术,我们可以通过口述提问的方式与ChatGPT进行交流,而无需通过文本输入。语音识别软件会将我们的提   问转化为文本,并将其发送给ChatGPT进行处理。最后,ChatGPT的回答可以通过语音识别软件以语音的形式播报出来,     从而实现真正的语音交互。这样一来,在需要双手不能自由操作的情况下,我们仍能够与ChatGPT进行无缝交流,提高交互   效率,享受更加愉悦的交互体验。

认识Scriptable

Siri自带语音识别的能力,我们可以通过Scriptable调用Siri的语音识别来实现语音交互。Scriptable是一个iOS脚本工具,   允许我们使用Swift或JavaScript开发小工具和Applets。它提供了丰富的API,能实现定时任务、网络请求、文件操作以及   UI展示等功能。我们将使用Scriptable来实现与Siri的交互和ChatGPT的请求。

下载并打开 scriptable 点击右上方“加号”新建一个项目并命名为SiriChatGPT

本次我们做一个小尺寸的小组件

 

function createWidget(img) { // 定义一个创建组件的函数
  const w = new ListWidget();
  w.addSpacer();
  w.spacing = 5;
  
   const bgColor = new LinearGradient(); // 定义一个渐变背景
   bgColor.colors = [new Color("#333"), new Color("#333")]; // 设置渐变颜色
   bgColor.locations = [0.0, 1.0]; // 设置渐变位置
 
  if (config.widgetFamily == "small" || config.widgetFamily === undefined) { // 如果是小组件
    w.backgroundImage = img; // 设置背景图片
    w.presentSmall(); // 显示小组件
  }
 
  return w;
}

我们定义了一个创建组件的函数createWidget,通过传入img参数可以设置组件的背景图片。

根据config.widgetFamily获取到组件当前渲染的尺寸,widgetFamily: small(小)、medium(中)、large(大)

try {
  var img = await new Request("https://n.sinaimg.cn/sinakd20230202s/348/w184h164/20230202/ad51-f00728753f8f5e1c53c10ae5dd1cf3de.png").loadImage();
  } catch (err) {
    throw new Error("图片地址不支持");
  }
 
let widget = createWidget(img);

通过Request方法加载一张图片做为组件的logo图片并展示,通过try来捕获加载错误,并调用createWidget方法将图片传给widget,要想让siri发声。

要用siri将固定的内容借siri的能力,将数据读出通过调用小组件暴露出来的Speech API。

await Speech.speak('请说出你的问题');

直接调用Speech.speak的命令,返回是一个promise 所以需要在前加一个await.

Speech有个需要注意的是他必须依赖于siri环境,不然会报错“命令不支持”

完成了小组件的创建和语音提示后,接下来就是实现与ChatGPT的交互了。这里我们需要用到OpenAI提供的API,将语音转换为文本,再将文本传给ChatGPT进行处理,最后将ChatGPT的回答转换为语音播放出来。

要将我们口述的问题,给到Siri并进行语音转文字的供给chatGPT识别。Dictation API 提供一个异步的start方法

let result = await Dictation.start();

通过调用start的方法,将会新开一个对话框,我们可以尝试说写话,将可以看见话被转为文字并显示在对话框内

以这为例,咨询了"红烧肉的做法"完成后点击"Done".

完成了小组件的创建和语音提示后,接下来就是实现与ChatGPT的交互了。这里我们需要用到OpenAI提供的API,将语音转换为文本,再将文本传给ChatGPT进行处理,最后将ChatGPT的回答转换为语音播放出来。

async function queryOpenAI(text) {
  let req = new Request("https://api.openai.com/v1/engines/davinci-codex/completions");
  req.headers = {
    "Authorization": "Bearer " + apiKey,
    "Content-Type": "application/json",
  };
  req.method = "POST";
  req.body = JSON.stringify({
    prompt: text,
    max_tokens: 2048,
    temperature: 0.7,
    n: 1,
    stream: false,
    stop: "\n",
  });
  let result = await req.loadJSON();
  return result.choices[0].text;
}

将通过Dictation获取识别的文案,传给查询接口并向openai发出请求。
apiKey请替换为自己的chatgpt Api key即可

代码如下

// 如果是在 Siri 中运行,则使用语音提示用户说出问题
if(config.runsWithSiri) {
  await Speech.speak('请说出你的问题');
}
 
// 如果是在应用中运行,则调用Dictation.start()方法开始语音识别,并将识别结果发送到服
if (config.runsInApp) {
  let result = await Dictation.start(); // 开启识别
  let r = await _post({ // 发送识别的文案
    url: 'chat.openapi.com/request',
    body: JSON.stringify({
                value: result,
            }),
    headers: {
                "Content-Type": "application/json",
            }
  })
 
  await Speech.speak(r.response); // 朗读chatGPT的返回内容
}
 
 
Script.setWidget(widget);
Script.complete();

将小组件安装到Mac

打开scriptable左下方的settings按钮

打开设置面板,点击"Add to Siri"按钮,更改语音指令 "嘿 Siri 快出来"好了完成了组件和指令部分

点击"编辑小组件"

将"Run Script"添加到桌面小组件内

 

点击新加入的组件

Script选取为我们刚开发的 SiriChatGPT组件

至此完成了所有开发和设置,我们可以试这玩一下了,对着Mac说一句"嘿 Siri 快出来"说出你的问,就会听到Siri会说出答案

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/23176.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数据标注工具CVAT教程

目录 0. CVAT链接 1. 标注图(以旋转框为例)导出可视化效果 2. docker-容器安装cvat 3. cvat标注教程 3.1 支持的类型 3.2 标注流程 4. 类似paddle-OCR文本检测-文本识别 标注流程 0. CVAT链接 cvat:https://github.com/openvinotoolkit/cvat 1. 标注图(以旋转框为…

数据标注是什么,如何高效完成数据标注?

尽管人工智能有着悠久的历史,但是直到近些年它才被大众所熟知。任何一个行业都有可能从人工智能中受益,它能够实现业务流程和预测分析自动化,这对于现代企业的生产至关重要。 然而,即使人工智能和机器学习被企业广泛应用&#xf…

ChatGPT要把数据标注行业干掉了?比人便宜20倍

来源:机器之心 没想到,AI 进化之后淘汰掉的第一批人,就是帮 AI 训练的人。 很多 NLP 应用程序需要为各种任务手动进行大量数据注释,特别是训练分类器或评估无监督模型的性能。根据规模和复杂程度,这些任务可能由众包工…

数据标注是什么,如何进行数据标注?

尽管人工智能有着悠久的历史,但是直到近些年它才被大众所熟知。任何一个行业都有可能从人工智能中受益,它能够实现业务流程和预测分析自动化,这对于现代企业的生产至关重要。 然而,即使人工智能和机器学习被企业广泛应用&#xff…

ChatGPT促进中国大语言模型发展,底层标注数据质量成关键,景联文科技提供专业数据采集标注服务

自开年以来,ChatGPT的热浪带来了一场全民的科技狂欢,同时打开了业内对NLP发展的想象空间,拉开了大语言模型产业和生成式AI产业飞速发展的序幕。 海外市场中OpenAI、微软、谷歌、Meta等巨头都在积极争抢布局ChatGPT,中国市场中百度…

比人类便宜20倍,ChatGPT让数据标注者危矣?

来源:学术头条 大数据文摘 本文约1000字,建议阅读5分钟 能否让机器帮助人类完成这一基础任务呢? 当前,很多自然语言处理(NLP)应用需要高质量的标注数据来支撑,特别是当这些数据被用于训练分类器…

必须了解的不同地区的支付方式FP独立站安全收款方式

跨境收款是跨境电商自建站系统最重要的功能之一,其收款方式一直是众多独立站卖家特别是做fp独立站的最为关注的问题之一,加上chatgpt出现,对fp独立站的检测审核更加严格,那么,你知道要怎么做才能安全收款吗&#xff1f…

互联网晚报 | 马斯克、苹果创始人等科技人士发公开信叫停人工智能开发;钟薛高推出3.5元雪糕;理想回应雷达在无人陵园显示全是人...

马斯克、苹果联合创始人等千名科技人士发公开信叫停人工智能开发:对社会和人性存潜在风险 据报道,包括马斯克、苹果联合创始人斯蒂夫沃兹尼亚克在内的1000多名人工智能专家和行业高管日前签署了一份公开信,他们呼吁将AI系统的训练暂停六个月&…

月薪30k,要求会用chatgpt写代码

首先声明这不是招聘广告。是我朋友圈猎头发的招聘信息,我只是看到有个条件要会chatgpt写代码。 真的有公司招聘chatgpt程序员写代码。所以会chatgpt是多了个出路,并不会替代程序员。

【Paper】英文文章图表规范和文献引用格式

两年前,第一次写文章的时候遇到了各种问题, 引用格式是错的,没见过三线表,图片尺寸和文章不搭,不知道怎么管理文献,不知道方法和结果章节的区别…… 两年后,我变强了,也变秃了 好…

电子文献引用 引用csdn

我瞎写的,不知道对不对,网上实在难找(参考文献如果是网页的话应该怎么写格式?): WGS.连续变量分箱[EB/OL].csdn,2020-11-20[2022-05-02].https://blog.csdn.net/qq_42363032/article/details/10…

使用HistCite进行文献引用分析

[前言]每一位科研工作者,在进入一个新的领域或课题时,都希望找到该领域最有价值的论文进行阅读。那么,通过分析该领域全部论文的引用关系就可以找到被引用最多的论文、最原始的文献,从而进行有针对性的阅读。 本文介绍如何通过Hi…

服务器响应很慢的分析与解决

1、背景 最近部署了一台web服务器,上架后用户那边反映打开很慢,我尝试用外网打开发现确实慢,包括ssh登录就特别慢,于是产生了分析与解决的想法。 2、分析 检查了网线和上联端口的带宽,发现都没问题,ping10…

接口响应过慢的原因排查,希望对你有用

最近一次的项目体验,手机用户在训练完成之后,会有服务器超时的提示,在用户量大的时候,每晚的7-9点时间段发生的尤为频繁,所以作了一些的排查。 排查的顺序乃是这样的: 确定是哪个接口存在性能问题 确定这…

构建类ChatGPT产品的经典知识数据库的原理与路径

构建经典知识数据库是类ChatGPT产品发展不可或缺的关键阶段。这一阶段的重要性在于为类ChatGPT产品打下基础,为自然语言大模型提供坚实可靠的文献资源,成为其最终的依据。 经典文献知识数据库与人工智能的结合将发挥独特的重要作用。实际上,…

当以ChatGPT为代表的AI进入教育,会碰撞出怎样的火花?

ChatGPT是当前的社会热点,街头巷尾、各行各业都在讨论它,迅速引起了全世界的关注。目前,在国外,ChatGPT已经开始进入学校。当以ChatGPT为代表的AI进入教育,会碰撞出怎样的火花? INSA校友卢宇,这…

还在转发杨超越?参加这场图表大show,你就能成为锦鲤本鲤!

Biu~ 暑假快要过去了 马上就要开学了 惊不惊喜? 意不意外? 听到这个消息, 在校学生 啊,我的空调、WiFi、西瓜 高校教师 啊,我的大好河山!(世界那么大... 职场白领 我就静静地听着你们诉(哀&…

ChartGPT有点意思,还能这么玩

ChatGPT是OpenAl开发的一种语言生成系统,具有较高的自然语言理解和对话管理能力。 所以它常用于对话机器人,比如说某爱、某度等,同时也可用于自动回复、问答系统等,对搜索引擎的智能化都带来不少新的挑战和方向。 然而目前ChatGP…

快速生成一份ppt:ChatGPT+MindShow

一、ChatGPT 需要用到目前全宇宙最火的chatgpt,输入格式一定要markdown格式输出 帮我做一份《xxxx》的ppt,帮我写一份包含6个子标题的大纲,每个子标题下尽量写4-5条内容,内容尽量详实,如果有例子更好。最后用markdown…

大厂被裁,我也曾迷茫过

大家好,我是徐公,6 年大厂程序员经验。 最近收到好几位粉丝的私信。问我说,徐公,我去年年底被裁,到现在还没找到工作,挺焦虑的,你这边有没有什么机会,可以帮忙内推?或者…