多条音频按顺序合成 代码实现

根据之前文章后续chatTTS文本转语音 实践相关记录-CSDN博客 直接合成多条音频,顺序会乱,最终合成的效果不显著,改进了合成音频的代码

直接获取文件夹中的所有 WAV 文件,并按文件名排序来合并它们。

wav_files.sort() 默认是按字母升序排序,也就是说,文件名的顺序是从小到大(如 line_1.wavline_2.wav 之前)。对于命名格式 line_{index}.wav,这种方式会保证它们按数字顺序排列,因为文件名中的数字在字母排序中是升序的。

如果想要更明确地按照文件名中的数字顺序排序,可以使用一个自定义的排序函数,确保它按数字进行排序。

import os
from pydub import AudioSegment# 指定文件夹路径
folder_path = 'output_wav_files'# 创建一个空的 AudioSegment 对象
combined = AudioSegment.empty()# 获取所有 WAV 文件
wav_files = [f for f in os.listdir(folder_path) if f.endswith('.wav')]# 按文件名中的数字进行排序
wav_files.sort(key=lambda x: int(x.split('_')[1].split('.')[0]))# 遍历文件并合并
for file_name in wav_files:file_path = os.path.join(folder_path, file_name)segment = AudioSegment.from_wav(file_path)combined += segment# 保存合并后的文件
combined.export('combined_output.wav', format='wav')

在这个示例中,key=lambda x: int(x.split('_')[1].split('.')[0]) 提取了文件名中的数字部分,并以此进行排序,确保按数字顺序合并 WAV 文件

还是需要保证之前生成音频输出的wav文件命名格式跟我一样

如果自己编辑的命名,可能需要修改以下合成音频的代码处理顺序的格式

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

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

相关文章

CMake 生成器表达式介绍

【写在前面】 生成器表达式在构建系统生成期间进行评估&#xff0c;以生成特定于每个构建配置的信息。它们的形式为 $<...>。例如&#xff1a; target_include_directories(tgt PRIVATE /opt/include/$<CXX_COMPILER_ID>) 这将扩展为 “/opt/include/GNU”、“/opt…

Java Lock Semaphore 总结

前言 相关系列 《Java & Lock & 目录》&#xff08;持续更新&#xff09;《Java & Lock & Semaphore & 源码》&#xff08;学习过程/多有漏误/仅作参考/不再更新&#xff09;《Java & Lock & Semaphore & 总结》&#xff08;学习总结/最新最准…

1.机器人抓取与操作介绍-深蓝学院

介绍 操作任务 操作 • Insertion • Pushing and sliding • 其它操作任务 抓取 • 两指&#xff08;平行夹爪&#xff09;抓取 • 灵巧手抓取 7轴 Franka 对应人的手臂 6轴 UR构型去掉一个自由度 课程大纲 Robotic Manipulation 操作 • Robotic manipulation refers…

STK与MATLAB互联——仿真导航卫星与地面用户间距离和仰角参数

文章目录 构建GPS星座创建单个PRN的GPS卫星创建GPS星座&#xff0c;并为其添加发射机 北斗星座构建搭建低轨铱星星座构建一颗轨道高度为800km/1000km/1200km的低轨卫星构建一颗轨道高度为800km/1000km/1200km的低轨卫星建立地面站&#xff0c;可见性分析确定地面站坐标分析单颗…

大数据之VIP(Virtual IP,虚拟IP)负载均衡

VIP&#xff08;Virtual IP&#xff0c;虚拟IP&#xff09;负载均衡是一种在计算机网络中常用的技术&#xff0c;用于将网络请求流量均匀地分散到多个服务器上&#xff0c;以提高系统的可扩展性、可靠性和性能。以下是对VIP负载均衡的详细解释&#xff1a; 一、VIP负载均衡的基…

挖矿病毒的处理

前阶段生产服务器又中挖矿病毒了&#xff0c;紧急处理了一波 现象 执行 top命令&#xff0c;查看哪里cpu占用较高 CPU 彪满下不来 解决 1、杀掉进程 kill -9 pid 2、但是&#xff0c;过一会又不行了&#xff0c;说明有定时任务在定时执行这个病毒 3、先找到病毒文件&…

java OOP 对象操作

目录 引 对象比较 ”引用比较“与“内容比较” 对象的比较&#xff1a;Comparable接口 泛型化的Comparable接口 使用例子 “”与“equals” 重写equals()的必要性 重写equals方法的要求 重写hashCode( )方法 hashCode() 与 equals() 的关系 重写 hashCode() 的规则…

小柴冲刺软考中级嵌入式系统设计师系列二、嵌入式系统硬件基础知识(6)嵌入式系统总线及通信接口

目录 越努力&#xff0c;越幸运&#xff01; flechazo 小柴冲刺软考中级嵌入式系统设计师系列总目录 一、PCI、PCI-E 等接口基本原理与结构 1、PCI (1)高速性。 (2)即插即用性。 (3)可靠性。 (4)复杂性。 (5)自动配置。 (6)共享中断。 (7)扩展性好。 (8)多路复用。…

DDei在线设计器-简洁布局

简洁布局 从1.2.41版开始&#xff0c;DDei提供了简洁版界面布局&#xff0c;效果如下&#xff1a;。 一、使用方式 demo.vue <script setup lang"ts"> import DDeiEditorView from "ddei-editor"; import { DDeiCoreStandLayout } from "ddei…

我的随机数生成有什么问题,它只给出一个数字作为输出

问题 我尝试过更改数字&#xff0c;还尝试过删除并重新添加数学层&#xff0c;但结果仍然相同。它每次都应该给出不同的数字&#xff0c;但在我的例子中&#xff0c;无论我编写代码多少次&#xff0c;它都只给出一个数字作为输出。 我的代码是 var thisIsNew Math.floor(Mat…

数据库存储过程的后端调用(SQLServer)

项目中使用到了SQL Server的存储过程&#xff0c;其位于可编程性-存储过程&#xff0c;详细如下。 其内需要四个入参&#xff0c;为表名&#xff0c;列名&#xff0c;左固定值&#xff0c;剩下右边的长度。 本项目中需要生成10位验收单编号&#xff0c;其中前六位为年月&#…

部署MiniCPM-V

GitHub - OpenBMB/MiniCPM-V: MiniCPM-V 2.6: A GPT-4V Level MLLM for Single Image, Multi Image and Video on Your Phone 安装和执行 "Local WebUI Demo" 的步骤如下&#xff1a; 克隆仓库并导航到源文件夹&#xff1a; git clone https://github.com/OpenBMB/M…

第十二章 章节练习created的应用

目录 一、引言 二、运行效果图 ​三、完整代码 一、引言 构建一个新闻的页面&#xff0c;页面在响应式数据准备好之后&#xff08;即created&#xff09;&#xff0c;就向后台接口请求获取新闻数据列表&#xff0c;然后赋值给Vue实例中的list列表&#xff0c;这个请求逻辑我…

智能管线巡检系统:强化巡检质量,确保安全高效运维

线路巡检质量的监控是确保线路安全、稳定运行的重要环节。为了有效监控巡检质量&#xff0c;采用管线巡检系统是一种高效、科学的手段。以下是对如何通过管线巡检系统实现线路巡检质量监控的详细分析&#xff1a; 一、巡检速度监控 管线巡检系统能够实时监控巡检人员的巡检速度…

【52 机器学习 | 基于KNN近邻和随机森林模型对用户转化进行分析与预测】

文章目录 &#x1f3f3;️‍&#x1f308; 1. 导入模块&#x1f3f3;️‍&#x1f308; 2. Pandas数据处理2.1 读取数据2.2 查看数据信息2.3 字段说明2.4 删除重复值2.5 删除空值 &#x1f3f3;️‍&#x1f308; 3. 数据分析-特征分析3.1 年龄及转化率分析3.2 各营销渠道人数及…

2024年下教师资格证面试报名详细流程❗

⏰ 重要时间节点&#xff1a; &#xff08;一&#xff09;下半年笔试成绩查询&#xff1a;11月8日10:00 &#xff08;二&#xff09;注册报名&#xff1a;11月8日10:00-11日18:00 &#xff08;三&#xff09;网上审核&#xff1a;11月8日10:00-11日18:00 &#xff08;四&#x…

vue2之混入(mixin)

Vue 2 的混入&#xff08;Mixin&#xff09;是一种在 Vue 组件中分发可复用功能的方式。通过混入&#xff0c;你可以将一些通用的组件选项&#xff08;如数据、方法、计算属性、生命周期钩子等&#xff09;提取到一个混入对象中&#xff0c;并在多个组件中重用这些选项&#xf…

粉体包覆机、粉体干燥机、球磨机、整形机

包覆改性机在粉体加工中的应用和重要性主要体现在以下几个方面&#xff1a; 1.行业范围广泛&#xff1a;制药&#xff1a;用于药物载体、药物添加剂的生产&#xff0c;通过表面改性改善药物的释放性能、稳定性和生物相容性等&#xff1b;化妆品&#xff1a;用于口红、粉底、眼…

(三)行为模式:11、模板模式(Template Pattern)(C++示例)

目录 1、模板模式含义 2、模板模式的UML图学习 3、模板模式的应用场景 4、模板模式的优缺点 5、C实现的实例 1、模板模式含义 模板模式&#xff08;Template Method Pattern&#xff09;是一种行为设计模式&#xff0c;它定义了一个操作中的算法骨架&#xff0c;将某些步骤…

快速学习:Linux中传输文件夹的10个scp命令

本文详细介绍了10种利用scp命令在Linux系统中进行文件传输的方法&#xff0c;涵盖基础文件传输、使用密钥认证、复制整个目录、从远程主机复制文件、同时传输多个文件和目录、保持文件权限、跨多台远程主机传输、指定端口及显示传输进度等场景&#xff0c;旨在帮助用户在不同情…