发布于2024-11-01 22:15 阅读(510) 评论(0) 点赞(26) 收藏(5)
豆包大模型是由字节跳动开发的人工智能。它具有强大的语言理解与生成能力、广泛的知识覆盖以及个性化的交互体验,本文旨在使用Python调用豆包大模型API,并实现TTS文本转语音,将大模型输出结果播报出来。
我使用的环境如下所示:
计算机系统架构:x86
Python版本:Python 3.11.3(官方要求上大于2.7即可)
Pycharm版本:Pycharm 2023.1(专业版)
为了实现文本转语音TTS以及加载.env配置文件,首先需要安装一些python的基础库:
- pip install pyttsx3
- pip install dotenv
在终端使用以下命令安装:
pip install volcengine-python-sdk
如果报以下错误:
- note: This error originates from a subprocess, and is likely not a problem with pip.
- ERROR: Failed building wheel for volcengine-python-sdk
- Running setup.py clean for volcengine-python-sdk
- Failed to build volcengine-python-sdk
- ERROR: ERROR: Failed to build installable wheels for some pyproject.toml based projects (volcengine-python-sdk)
是因为Windows 系统有最长路径限制,可能会导致安装失败,请按照以下方式设置:
- 1. 按下 Win+R ,输入 regedit 打开注册表编辑器。
- 2. 设置 \HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem 路径下的变量 LongPathsEnabled 为 1 即可。
修改完注册表后再次运行pip命令即可成功安装volcengine-python-sdk。
进入火山引擎官网,注册并登录:
https://console.volcengine.com/auth/login?redirectURI=%2Fhome
进入火山引擎API访问密钥网页,获取API访问密钥:
https://console.volcengine.com/iam/keymanage/
具体流程如下:
此处获得的Access Key和Secret Access Key非常重要,后续需要配置到Python程序中。
进入火山引擎API Key网页,获取API Key:
https://console.volcengine.com/ark/region:ark+cn-beijing/apiKey
具体流程如下:
即可获取到API Key。
进入火山引擎model获取网页,获取model:
https://console.volcengine.com/ark/region:ark+cn-beijing/endpoint?current=1&pageSize=10
具体流程如下:
模型选择Doubao-pro-4k,主线模型选择240515即可。
接入点名称下的这一串代码就是 ENDPOINT_ID,非常重要,后续需要填到Python程序中。
进入以下网站,开通模型:
https://console.volcengine.com/ark/region:ark+cn-beijing/openManagement
开通Doubao-pro-4k的模型服务。
使用pycharm新建工程,在工程中新建.env和main.py这两个文件,如下图所示:
在.env文件中填入以下内容:
- VOLC_ACCESSKEY= your Access Key
- VOLC_SECRETKEY= your Secret Access Key
- ENDPOINT_ID= your ENDPOINT_ID
将your Access Key替换成你自己的 Access Key,your Secret Access Key和 your ENDPOINT_ID也一样替换成自己的。
编写main.py:
- import os
- import pyttsx3
- from volcenginesdkarkruntime import Ark
- import dotenv
-
- # 加载环境变量
- dotenv.load_dotenv(".env")
-
- # 初始化 Ark 客户端
- client = Ark()
-
- # 初始化 pyttsx3 引擎
- engine = pyttsx3.init()
-
- # 配置 TTS 的语速和音量(可选)
- engine.setProperty('rate', 150) # 语速
- engine.setProperty('volume', 1) # 音量
-
- # 从环境变量中获取模型 ID
- model_id = os.getenv("ENDPOINT_ID")
-
- # 欢迎语
- Welcome_Text = "您好,我是豆包,您的大模型对话助手,请问有什么可以帮到您?(输入 'exit' 退出对话)"
- print(Welcome_Text)
- engine.say(Welcome_Text)
- engine.runAndWait() # 等待语音播放完毕
-
- # 进入多轮对话的循环
- while True:
- # 从终端获取用户输入
- user_input = input("User:\r\n")
-
- # 检查用户是否想退出
- if user_input.lower() in ["exit", "quit"]:
- print("AI:感谢您的使用,再见!")
- break
-
- # 创建流式对话请求
- stream = client.chat.completions.create(
- model=model_id,
- messages=[
- {"role": "system", "content": "你是豆包,是由字节跳动开发的 AI 人工智能助手"},
- {"role": "user", "content": user_input}, # 使用终端输入的内容
- ],
- stream=True
- )
-
- print("AI:")
- # 初始化一个空字符串来存储所有文本
- full_text = ""
-
- # 逐块读取流式输出并将结果打印
- for chunk in stream:
- if not chunk.choices:
- continue
- # 获取文本内容
- text = chunk.choices[0].delta.content
-
- # 输出文本到控制台
- print(text, end="")
-
- # 将文本累积到 full_text
- full_text += text
-
- # 当流式结果全部接收完成后,开始将累积的文本通过 TTS 朗读出来
- if full_text:
- engine.say(full_text)
- engine.runAndWait() # 等待语音播放完毕
-
- print("\r\n")
最终实现的效果如视频所示:
Python调用豆包大模型API
平均反应时间不到2s,嘎嘎nice!
源码放在这里了,需要的同学请自取~
https://download.csdn.net/download/Jlinkneeder/89743078
原文链接:https://blog.csdn.net/Jlinkneeder/article/details/142169630
作者:dgfv
链接:https://www.pythonheidong.com/blog/article/2040838/084a04b974d29f9f93a8/
来源:python黑洞网
任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任
昵称:
评论内容:(最多支持255个字符)
---无人问津也好,技不如人也罢,你都要试着安静下来,去做自己该做的事,而不是让内心的烦躁、焦虑,坏掉你本来就不多的热情和定力
Copyright © 2018-2021 python黑洞网 All Rights Reserved 版权所有,并保留所有权利。 京ICP备18063182号-1
投诉与举报,广告合作请联系vgs_info@163.com或QQ3083709327
免责声明:网站文章均由用户上传,仅供读者学习交流使用,禁止用做商业用途。若文章涉及色情,反动,侵权等违法信息,请向我们举报,一经核实我们会立即删除!