大型网站 中小型网站失效网站建设费支出

diannao/2026/1/22 0:15:18/文章来源:
大型网站 中小型网站,失效网站建设费支出,ciid中国室内设计官网,企业服务网站制作写在前面 如果你的身边有一个随时待命、聪明绝顶的AI小助手#xff0c;能够听懂你的话#xff0c;理解你的需求#xff0c;用温暖的声音回应你#xff0c;会是一种什么体验#xff1f; 今天#xff0c;带大家一起搭建一个语音对话机器人#xff0c;拥有一个专属的个人…写在前面 如果你的身边有一个随时待命、聪明绝顶的AI小助手能够听懂你的话理解你的需求用温暖的声音回应你会是一种什么体验 今天带大家一起搭建一个语音对话机器人拥有一个专属的个人AI小助手。 本文面向技术小白以最通俗易懂的语言最贴心的步骤指导确保你能够轻松上手快速掌握。 语音对话系统的基本组成有哪些 一个可以实现语音对话的机器人通常需要由硬件和软件构成硬件可以理解为机器人的躯体。 本篇主要来聊聊语音对话机器人的软件部分。 说到软件部分通常又可以抽象为三个部分 自动语音识别Automatic Speech Recognition, 简称 ASR相当于 机器人的耳朵用于把我们的语音识别成文字自然语言处理Natural Language Processing, 简称 NLP相当于 机器人的大脑理解上一步得到的文字信息并进行答复当前主流的解决方案是大语言模型LLM文本到语音合成Text to Speech简称 TTS相当于 机器人的嘴巴把上一步的答复用语音回答出来 如何快速搭建语音对话系统 为了帮助大家从0到1快速完成一个系统的搭建本文将完全采用开源方案来实现。具体而言 ASR 采用 FunASR相比 OpenAI 开源的 Whisper中文识别效果更好 NLP 采用大语言模型LLM方案比如我们这里可以采用 LLaMA3-8B采用本地的 GPU 部署和运行如果没有本地 GPU 资源也可以调用云端 API 实现这一步 TTS 采用 最新开源的 ChatTTS它是专门为对话场景设计的文本转语音模型支持英文和中文两种语言效果非常惊艳。 1 语音识别 ASR ASR 采用阿里开源的 FunASR相比 OpenAI 开源的 Whisper中文识别效果更好。 GitHub地址https://github.com/modelscope/FunASR 模型调用参考https://modelscope.cn/studios/iic/funasr_app_clipvideo/summary 通过如下代码我们简单测试一下返回结果和模型效果 from funasr import AutoModel # asr model funasr_model AutoModel(modeliic/speech_seaco_paraformer_large_asr_nat-zh-cn-16k-common-vocab8404-pytorch,vad_modeldamo/speech_fsmn_vad_zh-cn-16k-common-pytorch,punc_modeldamo/punc_ct-transformer_zh-cn-common-vocab272727-pytorch,spk_modeldamo/speech_campplus_sv_zh-cn_16k-common,) rec_result funasr_model.generate(test.wav, return_raw_textFalse, is_finalTrue)接下来我们需要将其封装成一个 API 方便后续调用。最简单的我们可以采用 FastAPI 来实现封装示例代码如下 # 定义asr数据模型用于接收POST请求中的数据 class ASRItem(BaseModel):wav : str # 输入音频base64编码time_stamp : int 0 # 时间戳可选默认为0app FastAPI() app.post(/asr) async def asr(item: ASRItem):time_stamp int(item.time_stamp)try:data base64.b64decode(item.wav)rec_result funasr_model.generate(data, return_raw_textFalse, is_finalTrue)res rec_result[0][sentence_info] if time_stamp else rec_result[0][text]result_dict {code: 0, msg: ok, res: res}except Exception as e:result_dict {code: 1, msg: str(e)}return result_dictif __name__ __main__:uvicorn.run(app, host0.0.0.0, port2002)2 大语言模型LLM 为了实现对话功能我们可以采用当前的大语言模型LLM对上一步识别出来的文字进行理解并给出答复。 本文的 LLM 采用 LLaMA3-8B开源社区已经实现了对 LLaMA3-8B 的中文指令微调为此中文效果会比原始版本效果更好。 GitHub地址https://github.com/ymcui/Chinese-LLaMA-Alpaca-3 模型地址https://modelscope.cn/models/ChineseAlpacaGroup/llama-3-chinese-8b-instruct/summary 在上述的 GitHub 仓库中给出了一键部署的脚本非常方便。四步走搞定它 下载代码下载模型安装必要的包服务启动 step 1 下载代码 git clone https://github.com/ymcui/Chinese-LLaMA-Alpaca-3step 2 下载模型 git clone https://www.modelscope.cn/ChineseAlpacaGroup/llama-3-chinese-8b-instruct.gitstep 3 安装必要的包 pip install fastapi uvicorn shortuuid sse_starlette peft bitsandbytes pip install flash-attn --no-build-isolation # 如果要使用flash-attention的话step 4 服务启动 服务启动的代码如下--base_model 替换为自己的模型路径--load_in_4bit 指定了采用 4bit 量化。 注意如果采用不量化的方案显存占用12G回复非常慢有请求过来显存占用最高近14G而采用4bit 量化显存只占用 6G。 python scripts/oai_api_demo/openai_api_server.py \ --base_model /path/to/models/llama-3-chinese-8b-instruct/ \ --gpus 2 \ --port 2001 \ --load_in_4bit \ --use_flash_attention_2 \log.txt 21 step 5 服务调用 为了实现 LLM 的个性化回答当然需要给它设定一个特定的人设啦 ~ 这一步可以通过人设提示词来轻松搞定。下面给一个示例 from openai import OpenAI# 枚举所有可用的模型服务 model_dict {llama3-8b: {api_key: sk-xxx,base_url: http://10.18.32.170:2001/v1,}, }# 设置人设提示词根据需要进行修改 prompt_dict {llama3-8b: [{role: system, content: 你是猴哥的全能小助手上知天文下知地理可解决生活中的一切困扰。},], }class LLM_API:def __init__(self, api_key, base_url, model):self.client OpenAI(api_keyapi_key,base_urlbase_url,)self.model modeldef __call__(self, messages, temperature0.7):completion self.client.chat.completions.create(modelself.model,messagesmessages,temperaturetemperature,)return completion.choices[-1].message.contentif __name__ __main__:model llama3-8bllm LLM_API(model_dict[model][api_key], model_dict[model][base_url], model)user_question 你是谁messages prompt_dict[model] [{role: user, content: user_question},]print(llm(messages))如果本地没有 GPU 资源部署 大语言模型也可以选择调用云端 API 来实现这一步猴哥下一篇就来梳理一下 我们都可以调用哪些免费的 LLM API? 欢迎追更 3 语音生成TTS 为了将大模型输出的文字生成语音返回这里我们采用 2024.5 刚开源的项目 - ChatTTS生成效果非常惊艳。关于 ChatTTS 的具体使用猴哥会单独出一篇教程否则本文的篇幅就太长了。 同样还是采用 FastAPI 来实现封装和部署 ASR 模型类似在此不再赘述。 PS需要源码的可到文末自取~ 4 前端交互实现Gradio Gradio是一个用于快速创建机器学习模型的交互式演示的开源库。它允许开发者通过简单的Python代码快速构建一个用户界面。 为了快速搭建应用我们还是要请出我们的老朋友 - Gradio交互界面如图所示 WebUI 代码奉上 import gradio as gr from speech_client import asr_damo_api, tts_chat_api from llm_client import LLM_API, prompt_dict, model_dicthost_avatar assets/host_image.png user_avatar assets/user_image.pngmodel llama3-8b # model gpt-4 llm LLM_API(model_dict[model][api_key], model_dict[model][base_url], model)with gr.Blocks(themegr.themes.ThemeClass) as demo:state gr.State({messages: []})with gr.Row():with gr.Column(scale1):user_chatbot gr.Chatbot(value[[None, 欢迎你来]],elem_classesapp-chatbot,avatar_images[host_avatar, user_avatar],label交互区,show_labelTrue,bubble_full_widthFalse,height800)with gr.Column(scale1):audio_user gr.Audio(labelUser Input, sources[microphone], typefilepath)user_text gr.Textbox(label语音识别内容)user_submit gr.Button(提交, variantprimary)audio_bot gr.Audio(labelBot Output, autoplayTrue, typefilepath)def process_audio(audio):print(Processing audio:, audio)text asr_damo_api(audio, time_stamp0, srtFalse)print(text)return textdef user_submit_handler(user_text, state, chatbot):chatbot.append((user_text, None))yield (chatbot, None)messages state[messages]if len(messages) 0:messages prompt_dict[model] [{role: user, content: user_text}]else:messages.append({role: user, content: user_text})print(messages)response llm(messages)chatbot.append((None, response))messages.append({role: assistant, content: response})print(messages)state[messages] messagesaudio tts_chat_api(response)print(audio)yield (chatbot, audio)audio_user.stop_recording(process_audio, inputsaudio_user, outputsuser_text)user_submit.click(user_submit_handler, inputs[user_text, state, user_chatbot], outputs[user_chatbot, audio_bot])demo.launch(server_name0.0.0.0, server_port7861)最后我们来看下效果 语音对话机器人-个人AI小助手 未完待续 至此一个语音对话交互系统就搭建好了当然目前只是为了演示基本功能界面还比较简陋在此基础上 还可以增加更多功能 ASR : 目前采用的 FunASR 模型在有噪声情况下识别效果还有待增强需要找到更有效的平替LLM模型本地部署对很多小伙伴还是有一定门槛需要找到平价 or 免费的云端 APITTSChatTTS的效果非常不错后续可以增加说话人身份实现更丰富的输出支持流式对话像 GPT-4o 那样自然打断。 如果本文对你有帮助欢迎点赞收藏备用 目前猴哥开始运营一个公众号旨在分享关于AI效率工具、自媒体副业的一切。用心做内容不辜负每一份关注。 如需要获取本项目的源码可关注后台发送 “机器人” 获取。

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

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

相关文章

成都专业制作网站公司免费h5在线制作

问:gcc中的-I.是什么意思。。。。看到了有的是gcc -I. -I/usr/xxxxx..那个-I.是什么意思呢 最佳答案 答:-Ixxx 的意思是除了默认的头文件搜索路径(比如/usr/include等)外,同时还在路径xxx下搜索需要被引用的头文件。 所以你的gcc …

深圳微商城网站设计宣传片制作标准参数

rk3588s: 旋转编码器input输入事件适配 基于Android 12 kernel-5.10版本 参考文档: https://blog.csdn.net/szembed/article/details/131551950 Linux 输入设备调试详解(零基础开发)Rotary_Encoder旋转编码器驱动 通用GPIO为例 挂载input输…

正能量网站入口免费安全产品展示的手机网站

使用Turbo C和Turbo Pascal开始学习编程貌似也是一代人的集体记忆。这方面我也没什么忌讳,毕竟Borland Turbo C在九十年代末的PC上面还是一个运行效率不错的开发工具。然而启蒙老师的水平限制,那个时候所学习的编写和调试技术都不过关,一个超…

中国最好的域名注册网站微信小程序第三方开发

Hibernate中的标识符为实体的主键属性建模。 它有助于我们唯一地标识JPA实体。 每个实体都必须定义一个标识符。 同样,它可以是简单的也可以是复合的。 我们可以通过几种方式定义一个Hibernate标识符。 在本教程中,我们将学习如何做。 简单&#xff08…

虹口专业做网站微信支付申请网站建设未完成

文章来源&#xff1a;包子博客MySql 优化的 30 条建议1、应尽量避免在 where 子句中使用!或<>操作符&#xff0c;否则将引擎放弃使用索引而进行全表扫描。2、对查询进行优化&#xff0c;应尽量避免全表扫描&#xff0c;首先应考虑在 where 及 order by 涉及的列上建立索引…

深圳做网站网络营销公司接推广app任务的平台

进程的调度时机与进程的切换操作系统原理中介绍了大量进程调度算法&#xff0c;这些算法从实现的角度看仅仅是从运行队列中选择一个新进程&#xff0c;选择的过程中运用了不同的策略而已。对于理解操作系统的工作机制&#xff0c;反而是进程的调度时机与进程的切换机制更为关键…

信誉好的网站开发东莞seo整站优化火速

最近项目中有一个网络判断的需求&#xff0c;因为终端只能连接wifi&#xff0c;wifi即使连接上也可能会出现不能连接网络的问题&#xff0c;所以需要进行网络连接的判断。ping的相关知识使用ping检验网络是否可以连接ping就是检测客户端是否可以上网。那么我们就上代码该段代码…

微信网站建设定制住房公积金个人提取

1 问题 glide加载图片地址的时候&#xff0c;可能这个地址没有图片&#xff0c;那么我们需要对这种异常情况进行处理&#xff0c;当然我们也需要把这个图片进行圆形化 2 代码解决 Glide.with(mContext).load(iconPath).error(new ColorDrawable()).listener(new RequestListen…

汕头拿家做网站广州软件园软件开发公司

简介 XXL-JOB是一个分布式任务调度平台&#xff0c;其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线&#xff0c;开箱即用。 源码github地址 源码gitee地址 中文文档地址 中央仓库地址 <!-- http://repo1.maven.org/ma…

网站备案没了自己建一个简单的网站

高校心理教育辅导系统目录 目录 基于Springboot的高校心理教育辅导系统设计与实现 一、前言 二、系统功能设计 三、系统实现 1、学生功能模块的实现 &#xff08;1&#xff09;学生登录界面 &#xff08;2&#xff09;留言反馈界面 &#xff08;3&#xff09;试卷列表界…

本省网站建设建议微信营销的优势

转载自http://blog.csdn.net/lu597203933/article/details/14104505 灰度直方图 这次我从最基本的直方图讲起&#xff0c;一维直方图&#xff0c;至于二维等高维直方图&#xff0c;仅作为了解&#xff0c;后面有时间另开blog详解。 1&#xff1a;首先我们给出一幅图 其中的数据…

微信网站开发流程戚墅堰网站建设

多重纹理和纹理组合器 本文主要介绍OpenGL中两种技术的使用方法&#xff1a;多重纹理技术和纹理组合器技术&#xff0c;最终根据参考【2】中的代码&#xff0c;实现了两个简单的演示DEMO&#xff0c;其中使用到了《八叉树颜色量化、BMP、TGA文件解析》篇章中提供的图像解析类。…

找活做的网站wordpress首页白屏

1、什么是视图视图是虚拟的表&#xff0c;是一个存储的查询&#xff0c;虽然不需要实际的物理存储&#xff0c;但是也被看作是一个数据库对象&#xff1b;它与包含数据的表不一样&#xff0c;它不包含任何列或数据&#xff0c;它只是包含使用时动态检索数据的查询&#xff0c;并…

中英文网站建设企业网站未收录

&#x1f4e2;专注于分享软件测试干货内容&#xff0c;欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1f4dd; 如有错误敬请指正&#xff01;&#x1f4e2;交流讨论&#xff1a;欢迎加入我们一起学习&#xff01;&#x1f4e2;资源分享&#xff1a;耗时200小时精选的「软件测试」资…

织梦系统网站地图模板下载中国最好的外贸公司

1.最大公约数和最小公倍数的组合问题 &#xff08;1&#xff09;在调试的过程中涉及到很大的数据&#xff0c;我们我们在定义变量的时候定义为long long类型 &#xff08;2&#xff09;这个里面我们自定义了max2用来求最大公约数&#xff0c;min2用来求最小公倍数 &#xff0…

网站站做地图软件西安网站工作室

由于大量数据存储在数据库同一张表中&#xff0c;后期性能和扩展会受到影响。所以需要进行表分区&#xff0c;因为它可以将大表分成较小的表&#xff0c;从而减少内存交换问题和表扫描&#xff0c;最终提高性能。庞大的数据集被分成更小的分区&#xff0c;更易于访问和管理。 …

东莞网站设计案例阿里建站价格

目录 AQS简介AQS的设计思路AQS的核心组成部分 状态&#xff08;State&#xff09;同步队列&#xff08;Sync Queue&#xff09;条件队列&#xff08;Condition Queue&#xff09; AQS的内部实现 节点&#xff08;Node&#xff09;锁的获取与释放 独占锁共享锁 条件变量 AQS的应…

谷歌网站推广费用软装设计网站有哪些

void类型修饰符(type specifier)表示“没有值可以获得”。因此&#xff0c;不可以采用这个类型声明变量或常量。void 类型可以用于下面各小节所描述的目的。void用于函数声明没有返回值的函数&#xff0c;其类型为 void。例如&#xff0c;标准库函数 perror() 被声明为以下原型…

关于建设集团公司网站的报告众包网站建设

按显示技术尺寸来分&#xff0c;主要分为大尺寸和小尺寸&#xff08;10寸以下&#xff09;&#xff0c;TFT-LCD行业下游主要是各类型消费电子&#xff0c;包括PC显示器&#xff0c;液晶电视&#xff0c;智能手机等。 TFT&#xff0d;LCD面板产业链 资料来源&#xff1a;共研产…

做公众好号的网站吗黄冈做学生互评的网站

这开头还是介绍一下群&#xff0c;如果感兴趣PolarDB ,MongoDB ,MySQL ,PostgreSQL ,Redis, Oceanbase, Sql Server等有问题&#xff0c;有需求都可以加群群内&#xff0c;可以解决你的问题。加群请联系 liuaustin3 &#xff0c;&#xff08;共1830人左右 1 2 3 4 5&#xf…