科大讯飞在线语音合成(流式版)python版
1、进入自己的项目
复制APPID、APISecret、APIKey

2、添加好听发音人
复制vcn参数

3、需要替换代码部分:
换自己喜欢的发声人的参数

换上自己的APPID、APISecret、APIKey

4、完整代码:
# -*- coding:utf-8 -*-
import _thread as thread
import base64
import hashlib
import hmac
import wave
import json
import os
import ssl
from datetime import datetime
from time import mktime
from urllib.parse import urlencode
import websocketclass Ws_Param:def __init__(self, APPID, APIKey, APISecret, Text):self.APPID = APPIDself.APIKey = APIKeyself.APISecret = APISecretself.Text = Textself.CommonArgs = {"app_id": self.APPID}self.BusinessArgs = {"aue": "raw", "auf": "audio/L16;rate=16000", "vcn": "x4_lingyuyan", "tte": "utf8"}self.Data = {"status": 2, "text": str(base64.b64encode(self.Text.encode('utf-8')), "UTF8")}def create_url(self):url = 'wss://tts-api.xfyun.cn/v2/tts'date = datetime.now().strftime("%a, %d %b %Y %H:%M:%S GMT")signature_origin = f"host: ws-api.xfyun.cn\ndate: {date}\nGET /v2/tts HTTP/1.1"signature_sha = hmac.new(self.APISecret.encode('utf-8'), signature_origin.encode('utf-8'),hashlib.sha256).digest()signature_sha = base64.b64encode(signature_sha).decode()authorization_origin = f"api_key=\"{self.APIKey}\", algorithm=\"hmac-sha256\", headers=\"host date request-line\", signature=\"{signature_sha}\""authorization = base64.b64encode(authorization_origin.encode('utf-8')).decode()v = {"authorization": authorization, "date": date, "host": "ws-api.xfyun.cn"}return url + '?' + urlencode(v)def on_message(ws, message):try:message = json.loads(message)code = message.get("code")if code != 0:print(f"错误:{message.get('message')},代码:{code}")returnaudio = base64.b64decode(message["data"].get("audio", b""))with open(output_pcm, 'ab') as f:f.write(audio)if message["data"].get("status") == 2:print("WebSocket连接已关闭。")ws.close()except Exception as e:print("处理消息时出错:", e)def on_error(ws, error):print("WebSocket错误:", error)def on_close(ws, close_status_code, close_msg):print(f"WebSocket关闭,状态码:{close_status_code},关闭信息:{close_msg}")def on_open(ws):def run():ws.send(json.dumps({"common": wsParam.CommonArgs, "business": wsParam.BusinessArgs, "data": wsParam.Data}))if os.path.exists(output_pcm):os.remove(output_pcm)thread.start_new_thread(run, ())if __name__ == "__main__":input_txt = "在时光长河的悄然流淌里,命运的丝线将你我缠绕。还记得初次相遇,阳光正好,你就那样带着一身光芒,不经意间走进了我的视线,从此,我的目光便再也无法从你身上移开。"output_pcm = "output.pcm"output_wav = "output.wav"wsParam = Ws_Param(APPID='###', APISecret='###',APIKey='###', Text=input_txt)ws = websocket.WebSocketApp(wsParam.create_url(), on_message=on_message, on_error=on_error, on_close=on_close)ws.on_open = on_openwebsocket.enableTrace(False)ws.run_forever(sslopt={"cert_reqs": ssl.CERT_NONE})with open(output_pcm, 'rb') as pcmfile:pcmdata = pcmfile.read()with wave.open(output_wav, 'wb') as wavfile:wavfile.setparams((1, 2, 16000, 0, 'NONE', 'NONE'))wavfile.writeframes(pcmdata)print("转换完成。")
3、播放MAV文件
from playsound import playsound# 播放 WAV 文件
playsound("output.wav")
4、转MP3文件
from pydub import AudioSegmentsong = AudioSegment.from_wav("output.wav")
song.export("demo.mp3", format="mp3")
感谢您的支持和关注!!!
相关文章:
科大讯飞在线语音合成(流式版)python版
1、进入自己的项目 复制APPID、APISecret、APIKey 2、添加好听发音人 复制vcn参数 3、需要替换代码部分: 换自己喜欢的发声人的参数 换上自己的APPID、APISecret、APIKey 4、完整代码: # -*- coding:utf-8 -*- import _thread as thread import base…...
常见搜索算法汇总
常见搜索算法总结 搜索算法是人工智能和计算机科学中用于解决问题、优化路径或发现数据模式的关键技术。本文将对常见的搜索算法进行总结,包括A*算法、D*算法、模拟退火(Simulated Annealing)、爬山法(Hill Climbing)、…...
vue 中 ref 详解
一、定义与基本用法 1. 定义 在 Vue.js 中,ref是一个用于在组件中获取 DOM 元素或者子组件实例引用的属性。它提供了一种直接访问元素或组件的方式,使得我们可以在 JavaScript 代码中对它们进行操作。 2. 基本使用 在模板中,可以通过给元…...
探索开源项目 kernel:技术的基石与无限可能
在开源的广袤世界中,有一颗璀璨的明星——kernel(https://gitee.com/openeuler/kernel),它宛如一座技术的宝藏,蕴含着无数的智慧与创新,为众多开发者所瞩目和敬仰。 一、初窥 kernel 项目 当我第一次接触…...
C 实现植物大战僵尸(二)
C 实现植物大战僵尸(二) 前文链接,C 实现植物大战僵尸(一) 五 制作启动菜单 启动菜单函数 void startUI() {IMAGE imageBg, imgMenu1, imgMenu2;loadimage(&imageBg, "res/menu.png");loadimage(&am…...
Vivado - TCL 命令(DPU脚本、v++命令、impl策略)
目录 1. 简介 2. TCL 示例 2.1 DPU TCL 脚本 2.1.1 源码-精简 2.1.2 依赖关系 2.1.3 查 v 步骤列表 2.1.4 生成 DPU.XO 2.2 CPU 示例 2.2.1 源码-框架 2.2.2 示例设计详解 2.3 创建运行脚本 2.3.1 Generate scripts 2.3.2 runme.sh 文件 2.3.3 design_1_wrapper…...
【JDBC】数据库连接的艺术:深入解析数据库连接池、Apache-DBUtils与BasicDAO
文章目录 前言🌍 一.连接池❄️1. 传统获取Conntion问题分析❄️2. 数据库连接池❄️3.连接池之C3P0技术🍁3.1关键特性🍁3.2配置选项🍁3.3使用示例 ❄️4. 连接池之Druid技术🍁 4.1主要特性🍁 4.2 配置选项…...
hadoop-common的下载位置分享
1.GitHub - steveloughran/winutils: Windows binaries for Hadoop versions (built from the git commit ID used for the ASF relase) 2.GitHub - cdarlint/winutils: winutils.exe hadoop.dll and hdfs.dll binaries for hadoop windows 3.winutils: hadoop winutils 镜像...
【机器学习】SVM支持向量机(一)
介绍 支持向量机(Support Vector Machine, SVM)是一种监督学习模型,广泛应用于分类和回归分析。SVM 的核心思想是通过找到一个最优的超平面来划分不同类别的数据点,并且尽可能地最大化离该超平面最近的数据点(支持向量…...
Spring Boot介绍、入门案例、环境准备、POM文件解读
文章目录 1.Spring Boot(脚手架)2.微服务3.环境准备3.1创建SpringBoot项目3.2导入SpringBoot相关依赖3.3编写一个主程序;启动Spring Boot应用3.4编写相关的Controller、Service3.5运行主程序测试3.6简化部署 4.Hello World探究4.1POM文件4.1.1父项目4.1.2父项目的父…...
基于Spring Boot + Vue3实现的在线商品竞拍管理系统源码+文档
前言 基于Spring Boot Vue3实现的在线商品竞拍管理系统是一种现代化的前后端分离架构的应用程序,它结合了Java后端框架Spring Boot和JavaScript前端框架Vue.js的最新版本(Vue 3)。该系统允许用户在线参与商品竞拍,并提供管理后台…...
LeetCode--排序算法(堆排序、归并排序、快速排序)
排序算法 归并排序算法思路代码时间复杂度 堆排序什么是堆?如何维护堆?如何建堆?堆排序时间复杂度 快速排序算法思想代码时间复杂度 归并排序 算法思路 归并排序算法有两个基本的操作,一个是分,也就是把原数组划分成…...
华诺星空 Java 开发工程师笔试题 - 解析
单选题 1.Math.round(-11.5)等于多少?(B) A.-11.5 B.-11 C.-12 D.11.5 2.下列哪个没有继承自Collection接口。( C ) A.List B.Set C.Map D.全部 3.下列说法正确的有(B) A.在类方法中可用this来调用本类的类方法 B.在类方法中调用本类的类方法时可直接调用 C.在类…...
QT:一个TCP客户端自动连接的测试模型
版本 1:没有取消按钮 测试效果: 缺陷: 无法手动停止 测试代码 CMakeLists.txt cmake_minimum_required(VERSION 3.19) project(AutoConnect LANGUAGES CXX)find_package(Qt6 6.5 REQUIRED COMPONENTS Core Widgets Network)qt_standard_project_setup(…...
关于启动vue项目,出现:Error [ERR_MODULE_NOT_FOUND]: Cannot find module ‘xxx‘此类错误
目录 一、问题报错 二、原因分析 三、解决方法 一、问题报错 node环境变量配置有问题: (base) xxxM73H-15:~/VueProject/pproject-vue$ npm run dev /usr/bin/env: “node”: 没有那个文件或目录vue项目启动有问题: (base) xxx:~/VueProject/pproj…...
电路元件与电路基本定理
电流、电压和电功率 电流 1 定义: 带电质点的有序运动形成电流 。 单位时间内通过导体横截面的电量定义为电流强度, 简称电流,用符号 i 表示,其数学表达式为:(i单位:安培(A&#x…...
指针之矢:C 语言内存幽境的精准飞梭
一、内存和编码 指针理解的2个要点: 指针是内存中一个最小单元的编号,也就是地址平时口语中说的指针,通常指的是指针变量,是用来存放内存地址的变量 总结:指针就是地址,口语中说的指针通常指的是指针变量。…...
uniapp下载打开实现方案,支持安卓ios和h5,下载文件到指定目录,安卓文件管理内可查看到
uniapp下载&打开实现方案,支持安卓ios和h5 Android: 1、申请本地存储读写权限 2、创建文件夹(文件夹不存在即创建) 3、下载文件 ios: 1、下载文件 2、保存到本地,需要打开文件点击储存 使用方法&…...
免费干净!付费软件的平替款!
今天给大家介绍一个非常好用的电脑录屏软件,完全没有广告界面,非常的干净简洁。 电脑录屏 无广告的录屏软件 这个软件不需要安装,打开就能看到界面直接使用了。 软件可以全屏录制,也可以自定义尺寸进行录制。 录制的声音选择也非…...
软路由系统 iStoreOS 中部署 Minecraft 服务器
商业转载请联系作者获得授权,非商业转载请注明出处。协议(License): 知识共享署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)作者(Author): lhDream链接(URL): https://blog.luhua.site/archives/1734968846131 软路由系统 iStoreOS 中部署 Minecraft…...
WaveTools终极指南:免费解锁《鸣潮》流畅体验的完整解决方案
WaveTools终极指南:免费解锁《鸣潮》流畅体验的完整解决方案 【免费下载链接】WaveTools 🧰鸣潮工具箱 项目地址: https://gitcode.com/gh_mirrors/wa/WaveTools 还在为《鸣潮》游戏卡顿、帧率不稳而烦恼吗?WaveTools鸣潮工具箱为你带…...
OpenClaw数据清洗:GLM-4-7-Flash智能修复CSV文件常见问题
OpenClaw数据清洗:GLM-4-7-Flash智能修复CSV文件常见问题 1. 为什么需要自动化数据清洗工具 作为数据分析师,我每天要处理大量来源各异的CSV文件。最头疼的不是分析本身,而是前期数据清洗——编码混乱、日期格式不统一、缺失值扎堆…...
告别命令行恐惧:用乐鑫官方Flash Download Tool图形化烧录ESP32-S3固件(保姆级图文教程)
告别命令行恐惧:乐鑫Flash Download Tool图形化烧录ESP32-S3全指南 第一次接触ESP32开发板时,那个闪烁的命令行窗口让我手足无措。直到发现乐鑫官方的Flash Download Tool,才发现原来固件烧录可以如此直观简单——不需要记忆任何命令参数&…...
Umi-OCR:彻底解决你的文字识别难题,这3大功能让你效率翻倍!
Umi-OCR:彻底解决你的文字识别难题,这3大功能让你效率翻倍! 【免费下载链接】Umi-OCR Umi-OCR: 这是一个免费、开源、可批量处理的离线OCR软件,适用于Windows系统,支持截图OCR、批量OCR、二维码识别等功能。 项目地址…...
BongoCat:让桌面交互充满生命力的开源伴侣
BongoCat:让桌面交互充满生命力的开源伴侣 【免费下载链接】BongoCat 让呆萌可爱的 Bongo Cat 陪伴你的键盘敲击与鼠标操作,每一次输入都充满趣味与活力! 项目地址: https://gitcode.com/gh_mirrors/bong/BongoCat 在数字化工作与娱乐…...
探索前沿技术:如何利用AI优化现代软件开发流程
1. AI如何改变现代软件开发的面貌 十年前我刚入行时,软件开发还停留在"人肉编程"阶段。每个功能都要手动敲代码,调试全靠print大法,项目管理用Excel表格记录进度。现在回想起来,当时的开发方式就像用手工织布机做衣服—…...
STM32与ESP8266实现疫苗接种数据监控系统
STM32实现全球新冠疫苗接种数据监控系统设计指南1. 项目概述1.1 系统功能本项目基于STM32微控制器实现了一个全球新冠疫苗接种数据实时监控平台,通过WiFi模块连接互联网获取最新的疫苗接种统计数据,并在LCD显示屏上直观展示。系统主要功能包括࿱…...
终极jscpd API编程指南:如何在项目中集成代码重复检测功能
终极jscpd API编程指南:如何在项目中集成代码重复检测功能 【免费下载链接】jscpd Copy/paste detector for programming source code. 项目地址: https://gitcode.com/gh_mirrors/js/jscpd jscpd是一个强大的开源代码重复检测工具,支持150编程语…...
Qwen3-4B写作大师优化技巧:3个提示词方法让AI输出质量翻倍
Qwen3-4B写作大师优化技巧:3个提示词方法让AI输出质量翻倍 1. 为什么提示词对Qwen3-4B如此重要 Qwen3-4B-Instruct不是普通的文本生成模型,而是一个具备深度推理能力的AI写作伙伴。与基础模型不同,它经过专门的指令微调(Instruc…...
如何快速实现智能自动化配置:OpCore-Simplify完整实战指南
如何快速实现智能自动化配置:OpCore-Simplify完整实战指南 【免费下载链接】OpCore-Simplify A tool designed to simplify the creation of OpenCore EFI 项目地址: https://gitcode.com/GitHub_Trending/op/OpCore-Simplify OpCore-Simplify是一款专为Hack…...
