程序员最近都爱上了这个网站  程序员们快来瞅瞅吧!  it98k网:it98k.com

本站消息

站长简介/公众号

  出租广告位,需要合作请联系站长

+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

2024-11(1)

【豆包大模型】-Python调用豆包大模型API及文本转语音TTS

发布于2024-11-01 22:15     阅读(488)     评论(0)     点赞(26)     收藏(5)


一、豆包大模型简介

豆包大模型是由字节跳动开发的人工智能。它具有强大的语言理解与生成能力、广泛的知识覆盖以及个性化的交互体验,本文旨在使用Python调用豆包大模型API,并实现TTS文本转语音,将大模型输出结果播报出来。

二、环境描述

我使用的环境如下所示:

        计算机系统架构:x86

        Python版本:Python 3.11.3(官方要求上大于2.7即可)

        Pycharm版本:Pycharm 2023.1(专业版) 

三、 Python库安装

1. 基础库安装

为了实现文本转语音TTS以及加载.env配置文件,首先需要安装一些python的基础库:

  1. pip install pyttsx3
  2. pip install dotenv

2.  豆包大模型python库安装

在终端使用以下命令安装:

pip install volcengine-python-sdk

如果报以下错误:

  1. note: This error originates from a subprocess, and is likely not a problem with pip.
  2. ERROR: Failed building wheel for volcengine-python-sdk
  3. Running setup.py clean for volcengine-python-sdk
  4. Failed to build volcengine-python-sdk
  5. ERROR: ERROR: Failed to build installable wheels for some pyproject.toml based projects (volcengine-python-sdk)

 是因为Windows 系统有最长路径限制,可能会导致安装失败,请按照以下方式设置:

  1. 1. 按下 Win+R ,输入 regedit 打开注册表编辑器。
  2. 2. 设置 \HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem 路径下的变量 LongPathsEnabled 为 1 即可。

修改完注册表后再次运行pip命令即可成功安装volcengine-python-sdk。

四、大模型后台设置

1. 注册登录

进入火山引擎官网,注册并登录:

https://console.volcengine.com/auth/login?redirectURI=%2Fhome

2. 获取API访问密钥

进入火山引擎API访问密钥网页,获取API访问密钥:

https://console.volcengine.com/iam/keymanage/

具体流程如下:

此处获得的Access KeySecret Access Key非常重要,后续需要配置到Python程序中。

3. 获取API Key

进入火山引擎API Key网页,获取API Key:

https://console.volcengine.com/ark/region:ark+cn-beijing/apiKey

具体流程如下: 

即可获取到API Key。 

4. 获取model

进入火山引擎model获取网页,获取model:

https://console.volcengine.com/ark/region:ark+cn-beijing/endpoint?current=1&pageSize=10

具体流程如下:

模型选择Doubao-pro-4k,主线模型选择240515即可。

接入点名称下的这一串代码就是 ENDPOINT_ID,非常重要,后续需要填到Python程序中。

5. 开通模型

进入以下网站,开通模型:

https://console.volcengine.com/ark/region:ark+cn-beijing/openManagement

 开通Doubao-pro-4k的模型服务。

五、编写程序

1. 文件夹配置

使用pycharm新建工程,在工程中新建.envmain.py这两个文件,如下图所示:

2. 程序编写

在.env文件中填入以下内容:

  1. VOLC_ACCESSKEY= your Access Key
  2. VOLC_SECRETKEY= your Secret Access Key
  3. ENDPOINT_ID= your ENDPOINT_ID

将your Access Key替换成你自己的 Access Key,your Secret Access Key和 your ENDPOINT_ID也一样替换成自己的。

编写main.py:

  1. import os
  2. import pyttsx3
  3. from volcenginesdkarkruntime import Ark
  4. import dotenv
  5. # 加载环境变量
  6. dotenv.load_dotenv(".env")
  7. # 初始化 Ark 客户端
  8. client = Ark()
  9. # 初始化 pyttsx3 引擎
  10. engine = pyttsx3.init()
  11. # 配置 TTS 的语速和音量(可选)
  12. engine.setProperty('rate', 150) # 语速
  13. engine.setProperty('volume', 1) # 音量
  14. # 从环境变量中获取模型 ID
  15. model_id = os.getenv("ENDPOINT_ID")
  16. # 欢迎语
  17. Welcome_Text = "您好,我是豆包,您的大模型对话助手,请问有什么可以帮到您?(输入 'exit' 退出对话)"
  18. print(Welcome_Text)
  19. engine.say(Welcome_Text)
  20. engine.runAndWait() # 等待语音播放完毕
  21. # 进入多轮对话的循环
  22. while True:
  23. # 从终端获取用户输入
  24. user_input = input("User:\r\n")
  25. # 检查用户是否想退出
  26. if user_input.lower() in ["exit", "quit"]:
  27. print("AI:感谢您的使用,再见!")
  28. break
  29. # 创建流式对话请求
  30. stream = client.chat.completions.create(
  31. model=model_id,
  32. messages=[
  33. {"role": "system", "content": "你是豆包,是由字节跳动开发的 AI 人工智能助手"},
  34. {"role": "user", "content": user_input}, # 使用终端输入的内容
  35. ],
  36. stream=True
  37. )
  38. print("AI:")
  39. # 初始化一个空字符串来存储所有文本
  40. full_text = ""
  41. # 逐块读取流式输出并将结果打印
  42. for chunk in stream:
  43. if not chunk.choices:
  44. continue
  45. # 获取文本内容
  46. text = chunk.choices[0].delta.content
  47. # 输出文本到控制台
  48. print(text, end="")
  49. # 将文本累积到 full_text
  50. full_text += text
  51. # 当流式结果全部接收完成后,开始将累积的文本通过 TTS 朗读出来
  52. if full_text:
  53. engine.say(full_text)
  54. engine.runAndWait() # 等待语音播放完毕
  55. 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黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

26 0
收藏该文
已收藏

评论内容:(最多支持255个字符)