DIY一个智能音箱

十一假期里将蓝牙音箱改造成一个智能音箱, 参考了网上的实现方法, 后台的大语言模型使用的是百度的文心一言.

账号

  1. Picovoice 唤醒词服务 https://console.picovoice.ai/
    我绑定了github账号.
    访问https://picovoice.ai/,注册账号,然后进入控制台, 目前不支持中文唤醒词, 设置唤醒词后, 然后选择Windows操作系统,就能下载了,下载后的压缩包要解压,才能得到.ppn文件.
    Picovoice 提供了python SDK包 pvporcupine, 在程序中可使用该sdk通过对比.ppn内容来识别唤醒词.
  2. 百度智能云-语音类: https://console.bce.baidu.com/ai
    实现语音转文本服务, 使用之前需要在console中新增一个应用.
    百度也提供唤醒词服务, 但不支持windows, 所以我使用了 PicoVoice.
  3. 百度智能云-大语言模型类: https://console.bce.baidu.com/qianfan/ais/console/applicationConsole/application
    提供大语言模型问答功能, 使用之前需要在console中新增应用, 并选择一个大语言模型类型, 我使用的是 ERNIE-Bot-turbo 模型, token较为便宜.
  4. edge-tts: 实现文本转语音服务
    不同于微软和百度的TTS, 这个库不需要账号

教程

Picovoice离线语音识别在Linux系统的部署https://www.cnblogs.com/darren-channel/p/14860973.html

文心一言教程:https://zhuanlan.zhihu.com/p/656681903https://zhuanlan.zhihu.com/p/641298242

edge-tts:https://zhuanlan.zhihu.com/p/619612276

百度千帆大模型平台测试

对话url:
千帆大模型平台集成了业界多个大语言模型, 下面是三个大语言模型的url.
wenxinworkshop/chat/completions -- 文心一言模型
wenxinworkshop/chat/eb-instant -- ERNIE-Bot-turbo模型, token较为便宜
wenxinworkshop/chat/llama_2_7b -- llama_2_7b模型

api官方文档: https://cloud.baidu.com/doc/WENXINWORKSHOP/s/4lilb2lpf

POST 测试:

POST https://aip.baidubce.com/rpc/2.0/ai_custom/v1/wenxinworkshop/chat/eb-instant?access_token=24xxxxxx"  
content-type: application/json{"temperature": 0.9,"messages": [{"role": "user","content": "假设你是个智能伙伴,名字叫牛顿, 英文名为Newton, 你是一位百科全书式的人物, 你的回答需要非常简洁. 我的问题是:四大名著?"}]
}

源码参考

https://github.com/MedalCollector/Oratorhttps://github.com/FlickerMi/hello-chatgpt/blob/main/requirements.txthttps://notemi.cn/integrate-voice-services-to-achieve-voice-conversations-with-chatgpt.htmlhttps://github.com/wzpan/wukong-robothttps://github.com/phodal/awesome-smart-speaker

深度文章

Keyword Spotting 语音唤醒技术https://vaisramana.github.io/2019/08/03/keyword-spotting-语音唤醒技术.html

ChatGPT应用https://wqw547243068.github.io/chatgpt_application

大语言模型沉思录 Deep Think in LLMhttps://wqw547243068.github.io/llm

GPT-4要来了,一文看尽大型语言模型的过去现在未来https://www.thepaper.cn/newsDetail_forward_22275233

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

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

相关文章

java 无感hook实现(修改jdk)

背景 1 工作需要,需要修改一个java的程序逻辑,之前都是用的frida修改的,但是现在的工作场景,重视效率,所以frida这种重工具被pass了,只能重新选其他工具,初始的时候是想用java本身的一些修改工…

纸、纸板和纸制品 有效回收组分的测定

声明 本文是学习GB-T 42944-2023 纸、纸板和纸制品 有效回收组分的测定. 而整理的学习笔记,分享出来希望更多人受益,如果存在侵权请及时联系我们 1 范围 本文件描述了纸、纸板和纸制品中有效回收组分的测定方法。 本文件适用于各种纸、纸板和纸制品,也适用于铝箔…

微信小程序通过 movable-area 做一个与vuedraggable相似的上下拖动排序控件

因为只是做个小案例 我就直接代码写page页面里了 其实很简单 组件稍微改一下就好了 wxss /* 设置movable-area的宽度 */ .area{width: 100%; }/* a b c 每条元素的样式 */ movable-view {width: 100%;background-color: red;height: 40px;line-height: 40px;color: #FFFFFF;tex…

docker命令,免sudo

docker命令,免sudo 一、创建docker用户组 # 查看有无用户组 cat /etc/group | grep docker # 若无,创建 sudo groupadd docker二、添加当前用户到用户组 sudo gpasswd -a ${USER} docker三、重启docker服务 sudo service docker restart四、重启会话…

day

#include <iostream> using namespace std; class Per {//算术运算符friend const Per operator(const Per &k1,const Per &k2);friend const Per operator-(const Per &k1,const Per &k2);friend const Per operator*(const Per &k1,const Per &…

3ds Max渲染太慢?创意云“一键云渲染”提升3ds Max渲染体验

&#xfeff;在数字艺术设计领域&#xff0c;3ds Max是广泛使用的三维建模和渲染软件之一。然而&#xff0c;许多用户都面临着一个共同的问题&#xff1a;渲染速度太慢。渲染一帧画面需要耗费数小时&#xff0c;让人无法忍受。除了之前给大家介绍的几种解决方法外&#xff1a; …

uvm中transaction的response和id的解读

在公司写代码的时候发现前辈有一段这样的代码&#xff1a; ....//其他transaction uvm_create(trans);........ uvm_send(trans); tmp_id trans.get_transaction_id(); get_response(rsp,tmp_id); 如果前面有其他transaction&#xff0c;这段代码里的get_response不带id的话…

C#学习系列相关之多线程(五)----线程池ThreadPool用法

一、线程池的作用 线程池是一种多线程处理形式&#xff0c;处理过程中将任务添加到队列&#xff0c;然后在创建线程后自动启动这些任务。线程池线程都是后台线程。每个线程都使用默认堆栈大小&#xff0c;以默认的优先级运行&#xff0c;并处于多线程单元中。如果某个线程在托管…

Vue3中reactive, onMounted, ref,toRaw,conmpted 使用方法

import { reactive, onMounted, ref,toRaw,conmpted } from vue; vue3中 reactive &#xff0c;ref &#xff0c; toRaw&#xff0c;watch&#xff0c;conmpted 用法 toRaw 返回原响应式对象 用法&#xff1a; const rowList toRaw(row) reactive:ref: ref和reactive都是V…

快讯|Tubi 有 Rabbit AI 啦

在每月一期的 Tubi 快讯中&#xff0c;你将全面及时地获取 Tubi 最新发展动态&#xff0c;欢迎星标关注【比图科技】微信公众号&#xff0c;一起成长变强&#xff01; Tubi 推出 Rabbit AI 帮助用户找到喜欢的视频内容 Tubi 于今年九月底推出了 Rabbit AI&#xff0c;这是一项…

有效回收组分含量

声明 本文是学习GB-T 42944-2023 纸、纸板和纸制品 有效回收组分的测定. 而整理的学习笔记,分享出来希望更多人受益,如果存在侵权请及时联系我们 1 范围 本文件描述了纸、纸板和纸制品中有效回收组分的测定方法。 本文件适用于各种纸、纸板和纸制品&#xff0c;也适用于铝箔…

AndroidStudio报错:Plugin with id ‘kotlin-android‘ not found.

第一步 要在自己的项目的build.gradle的buildscript中添加ext.kotlin_version 1.3.72 第二步 然后在dependencies里添加classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" 大体如下&#xff1a; buildscript {ext.kotlin_version 1.3.72r…

Qt如何在视频画面上新增车道线显示

在Qt中向视频画面上新增车道线显示通常需要以下步骤&#xff1a; 1.获取视频流或帧数据&#xff1a;首先&#xff0c;您需要获取视频流或视频帧的数据。您可以使用Qt的多媒体模块或其他第三方库来捕获视频流&#xff0c;或者从视频文件中读取帧数据。这将是您要在其上绘制车道…

【自动驾驶】PETR/PETRv2/StreamPETR论文分析

1.PETR PETR网络结构如下&#xff0c;主要包括image-backbone, 3D Coordinates Generator, 3D Position Encoder, transformer Decoder 1.1 Images Backbone 采用resnet 或者 vovNet,下面的x表示concatenate 1.2 3D Coordinates Generator 坐标生成跟lss类似&#xff0c;假…

如何对比github中不同commits的区别

有时候想要对比跨度几十个commits之前的代码区别&#xff0c;想直接使用github的用户界面。可以直接在官网操作。 示例 首先要创建一个旧commit的branch。进入该旧的commit&#xff0c;然后输入branch名字即可。 然后在项目网址后面加上compare即可对比旧的branch和新的bran…

【轻松玩转MacOS】故障排除篇

引言 在使用 MacOS 时&#xff0c;遇到故障是在所难免的。不要担心&#xff0c;这篇文章将为您提供一些常见的故障排除步骤&#xff0c;并介绍如何联系苹果的支持团队寻求帮助。让我们一起来看看吧&#xff01; 一、常见的故障排除步骤 1.1 网络连接问题 如果你发现你的Mac…

初识华为云数据库GaussDB for openGauss

01 前言 GaussDB是华为自主创新研发的分布式关系型数据库。该产品具备企业级复杂事务混合负载能力&#xff0c;同时支持分布式事务&#xff0c;同城跨AZ部署&#xff0c;数据0丢失&#xff0c;支持1000的扩展能力&#xff0c;PB级海量存储。同时拥有云上高可用&#xff0c;高可…

【postgresql】ERROR: integer out of range

查询文章都类似&#xff0c;只是类型没有对应上&#xff0c;根据实际情况处理。 前情 使用postgresql数据库数据库ID类型int4实体类代码private Long id; 异常 ### Cause: org.postgresql.util.PSQLException: ERROR: integer out of range ; ERROR: integer out of range;…

Go 语言切片扩容规则是扩容2倍?1.25倍?到底几倍

本次主要来聊聊关于切片的扩容是如何扩的&#xff0c;还请大佬们不吝赐教 切片&#xff0c;相信大家用了 Go 语言那么久这这种数据类型并不陌生&#xff0c;但是平日里聊到关于切片是如何扩容的&#xff0c;很多人可能会张口就来&#xff0c;切片扩容的时候&#xff0c;如果老…

centos 安装 percona-xtrabackup

一、yum安装 1.安装Percona yum存储库 yum install https://repo.percona.com/yum/percona-release-latest.noarch.rpm 2.启用Percona Server 8.0存储库 percona-release setup ps57 3.输出如下则安装成功 [rootlocalhost ~]# percona-release setup ps80 * Disabling all…