网站备案网站要有内容吗,健身网站开发开题报告,怎么做系统软件网站,郑州网站建设兼职上周小米汽车发布#xff0c;其中有一个特色功能就是智能语音#xff0c;小爱同学整合了语音大模型#xff0c;实现智能座舱体验。
雷老板的PPT也演示了#xff0c;一些口语化的对话就能触发各种指令#xff0c;无论是开空调、播放音乐#xff0c;还是找手机、识别前方汽…上周小米汽车发布其中有一个特色功能就是智能语音小爱同学整合了语音大模型实现智能座舱体验。
雷老板的PPT也演示了一些口语化的对话就能触发各种指令无论是开空调、播放音乐还是找手机、识别前方汽车丝滑流畅。
其实这个就是语言大模型中的函数调用能力ChatGPT老早就已经能力支持了只是很多小伙伴们没有发觉或者看到冗长的技术文档就觉得是很复杂的功能。
本期文章就聊聊如何简单、快速地使用语言大模型实现一个小米汽车同款的智能语音助手。
语音输入
语言转文字有很多成熟的解决方案openai的wisper-1模型或者讯飞听见甚至是手机电脑自带的语音识别识别语音的准确度都是很高的。
函数调用
ChatGPT大模型是现在市面上训练地最充分也是国外的大模型中对中文支持最友好的一个。基于工作难度和响应速度考虑gpt-3.5-turbo模型已经够用了。
系统预设
当然为了让语言大模型能够准确地了解我们的使用场景可以适当地添加系统预设例如
{role: system,content: 你是一辆汽车内置的智能语言系统“小爱同学”为乘客提供智能的语言交互服务输出指令集。
}
函数定义
然后就是指令集的定义可以参考openai官方文档
https://platform.openai.com/docs/guides/function-calling
使用json-schema定义函数语言大模型会根据语境输出如何调用函数。这里给大家提供一个json-schema数据的编辑工具
https://texttools.cn/json-schema/
我们可以简单定义一些车内的设备操作和程序指令例如
[{name: instruction_set,description: 指令集,parameters: {type: object,title: 指令集,properties: {控制空调: {type: object,title: ,properties: {opeartion: {type: string,title: ,enum: [开启,关闭,调高温度,调低温度,调大风速,调低风速]}}},控制音乐: {type: object,title: ,properties: {opeartion: {type: string,title: ,enum: [播放,暂停,大声,小声]}}},执行程序: {type: object,title: ,properties: {program: {type: array,title: ,items: {type: string,title: 程序名称,enum: [获取当前位置,识别前方车辆,识别左方建筑,识别右方建筑,推荐附近美食,定位手机]}}}}}}}
]
这里为了直观直接使用了中文的key强迫症程序猿请忽略
语言输入
然后我们就可以模拟一下在车内的时候跟车载语音助手的互动可以在一句话中包含了多个信息现在的语言大模型是可以轻松地理解对话内容。
例如我们可以说 我有点热车里太安静了左边那个建筑是什么前面那辆车是什么车 接口调用
然后请求接口 可以看到返回结果
{控制空调: {opeartion: 调低温度},控制音乐: {opeartion: 播放},执行程序: {program: [识别左方建筑, 识别前方车辆]}
} 返回的指令集包括了 空调调低温度 播放音乐 执行程序 识别左方建筑 执行程序 识别前方车辆 这个指令集是严格按照我们预设的结构生成的拿到这个指令集之后就可以识别并执行对应的程序还可以在预设这些场景输出的回答内容例如“已调低空调温度”等。 贴一下详细的curl执行的时候只要将 THIS_IS_YOUR_APIKEY 替换为你的apikey即可。
curl --request POST \--url https://api.smarttxt.net/v1/chat/completions \--header Authorization: Bearer THIS_IS_YOUR_APIKEY \--header Content-Type: application/json \--header content-type: application/json \--data {model: gpt-3.5-turbo,messages: [{role: system,content: 你是一辆汽车内置的智能语言系统“小爱同学”为乘客提供智能的语言交互服务输出指令集。},{role: user,content: 我有点热车里太安静了左边那个建筑是什么前面那辆车是什么车}],functions: [{name:instruction_set,description:指令集,parameters:{type:object,title:指令集,properties:{控制空调:{type:object,title:,properties:{opeartion:{type:string,title:,enum:[开启,关闭,调高温度,调低温度,调大风速,调低风速]}}},控制音乐:{type:object,title:,properties:{opeartion:{type:string,title:,enum:[播放,暂停,大声,小声]}}},执行程序:{type:object,title:,properties:{program:{type:array,title:,items:{type:string,title:程序名称,enum:[获取当前位置,识别前方车辆,识别左方建筑,识别右方建筑,推荐附近美食,定位手机]}}}}}}}]
}
点击获取apikey 到此我们就已经实现了智能语音助手中最关键的“对话转指令”的能力。但是我们这个功能依赖的是线上的服务为了保证离线时系统的可用性我们还可以和小米汽车一样在本地部署一个大模型。 ps有需要本地部署大模型可以联系站长。