ubuntu下的chattts 学习5:Example: self introduction

代码

import ChatTTS
import torch
import torchaudiochat = ChatTTS.Chat()
chat.load(compile=False) # Set to True for better performance
###################################
inputs_en = """
chat T T S is a text to speech model designed for dialogue applications. 
[uv_break]it supports mixed language input [uv_break]and offers multi speaker 
capabilities with precise control over prosodic elements like 
[uv_break]laughter[uv_break][laugh], [uv_break]pauses, [uv_break]and intonation. 
[uv_break]it delivers natural and expressive speech,[uv_break]so please
[uv_break] use the project responsibly at your own risk.[uv_break]
""".replace('\n', '') # English is still experimental.params_refine_text = ChatTTS.Chat.RefineTextParams(prompt='[oral_2][laugh_0][break_4]',
)audio_array_en = chat.infer(inputs_en, params_refine_text=params_refine_text)
torchaudio.save("self_introduction_output.wav", torch.from_numpy(audio_array_en[0]), 24000)

最后出错了。

如下:

 UserWarning: The use of `x.T` on tensors of dimension other than 2 to reverse their shape is deprecated and it will throw an error in a future release. Consider `x.mT` to transpose batches of matrices or `x.permute(*torch.arange(x.ndim - 1, -1, -1))` to reverse the dimensions of a tensor. (Triggered internally at ../aten/src/ATen/native/TensorShape.cpp:3683.)
  src = src.T
Traceback (most recent call last):
  File "/home/duyicheng/gitee/ChatTTS/intr.py", line 22, in <module>
    torchaudio.save("self_introduction_output.wav", torch.from_numpy(audio_array_en[0]), 24000)
  File "/home/duyicheng/anaconda3/envs/chattts/lib/python3.12/site-packages/torchaudio/_backend/utils.py", line 313, in save
    return backend.save(
           ^^^^^^^^^^^^^
  File "/home/duyicheng/anaconda3/envs/chattts/lib/python3.12/site-packages/torchaudio/_backend/ffmpeg.py", line 316, in save
    save_audio(
  File "/home/duyicheng/anaconda3/envs/chattts/lib/python3.12/site-packages/torchaudio/_backend/ffmpeg.py", line 248, in save_audio
    s.add_audio_stream(
  File "/home/duyicheng/anaconda3/envs/chattts/lib/python3.12/site-packages/torio/io/_streaming_media_encoder.py", line 278, in add_audio_stream
    self._s.add_audio_stream(
RuntimeError: Failed to open codec: (Invalid argument)
Exception raised from open_codec at /__w/audio/audio/pytorch/audio/src/libtorio/ffmpeg/stream_writer/encode_process.cpp:194 (most recent call first):
frame #0: c10::Error::Error(c10::SourceLocation, std::string) + 0x96 (0x75c2fb4b2446 in /home/duyicheng/anaconda3/envs/chattts/lib/python3.12/site-packages/torch/lib/libc10.so)
frame #1: c10::detail::torchCheckFail(char const*, char const*, unsigned int, std::string const&) + 0x64 (0x75c2fb45c6e4 in /home/duyicheng/anaconda3/envs/chattts/lib/python3.12/site-packages/torch/lib/libc10.so)
frame #2: <unknown function> + 0x46c3f (0x75c2f28cac3f in /home/duyicheng/anaconda3/envs/chattts/lib/python3.12/site-packages/torio/lib/libtorio_ffmpeg6.so)
frame #3: torio::io::get_audio_encode_process(AVFormatContext*, int, int, std::string const&, std::optional<std::string> const&, std::optional<std::map<std::string, std::string, std::less<std::string>, std::allocator<std::pair<std::string const, std::string> > > > const&, std::optional<std::string> const&, std::optional<int> const&, std::optional<int> const&, std::optional<torio::io::CodecConfig> const&, std::optional<std::string> const&, bool) + 0x250 (0x75c2f28d14d0 in /home/duyicheng/anaconda3/envs/chattts/lib/python3.12/site-packages/torio/lib/libtorio_ffmpeg6.so)
frame #4: torio::io::StreamingMediaEncoder::add_audio_stream(int, int, std::string const&, std::optional<std::string> const&, std::optional<std::map<std::string, std::string, std::less<std::string>, std::allocator<std::pair<std::string const, std::string> > > > const&, std::optional<std::string> const&, std::optional<int> const&, std::optional<int> const&, std::optional<torio::io::CodecConfig> const&, std::optional<std::string> const&) + 0x90 (0x75c2f28d8dd0 in /home/duyicheng/anaconda3/envs/chattts/lib/python3.12/site-packages/torio/lib/libtorio_ffmpeg6.so)
frame #5: <unknown function> + 0x3acbb (0x75c22799ecbb in /home/duyicheng/anaconda3/envs/chattts/lib/python3.12/site-packages/torio/lib/_torio_ffmpeg6.so)
frame #6: <unknown function> + 0x31dfc (0x75c227995dfc in /home/duyicheng/anaconda3/envs/chattts/lib/python3.12/site-packages/torio/lib/_torio_ffmpeg6.so)
<omitting python frames>
frame #18: <unknown function> + 0x2a1ca (0x75c30022a1ca in /lib/x86_64-linux-gnu/libc.so.6)
frame #19: __libc_start_main + 0x8b (0x75c30022a28b in /lib/x86_64-linux-gnu/libc.so.6)

解决:未验证:明天再说。

根据你提供的错误信息,问题主要集中在两个方面:

1. **使用 `x.T` 进行张量转置的弃用警告**:
   - 错误信息提示 `x.T` 在维度不是2的情况下使用已被弃用,并将在未来版本中抛出错误。
   - 建议使用 `x.mT` 来转置批次矩阵,或者使用 `x.permute(*torch.arange(x.ndim - 1, -1, -1))` 来反转张量的所有维度。

2. **保存音频文件时的运行时错误**:
   - 错误信息显示在尝试保存音频文件时,FFmpeg 编解码器无法打开,原因是无效参数。
   - 具体错误发生在 `torio::io::get_audio_encode_process` 函数中。

### 解决方案

#### 1. 处理 `x.T` 弃用警告
如果你的代码中有类似 `x.T` 的用法,建议替换为推荐的方法。例如:
```python
# 替换 x.T 为 x.mT 或 x.permute(*torch.arange(x.ndim - 1, -1, -1))
# 示例:
# x = x.mT  # 如果 x 是一个批次矩阵
# 或者
# x = x.permute(*torch.arange(x.ndim - 1, -1, -1))  # 反转所有维度
```


#### 2. 解决音频保存错误
音频保存错误可能是由于音频数据格式或参数设置不正确导致的。以下是一些可能的解决方案:

- **检查音频数据格式**:
  - 确保 `audio_array_en[0]` 是一个正确的音频数组,通常是一个二维数组,其中第一维是通道数,第二维是样本数。
  - 使用 `torch.from_numpy(audio_array_en[0])` 转换后,确保得到的是一个浮点类型的张量,并且值在合理范围内(通常是 -1 到 1)。

- **调整采样率**:
  - 确认 `24000` 是正确的采样率。如果不正确,修改为正确的采样率。

- **检查 FFmpeg 安装**:
  - 确保 FFmpeg 已正确安装并且配置正确。可以通过命令行运行 `ffmpeg -version` 来验证。

- **调试音频数据**:
  - 尝试先将音频数据保存为其他格式(如 `.wav`),看看是否能成功保存,以排除数据本身的问题。

- **查看文档和社区支持**:
  - 查阅 `torchaudio` 和 `torio` 的官方文档,寻找关于音频保存的更多信息。
  - 如果问题依然存在,可以在相关的 GitHub 讨论区或 Stack Overflow 上寻求帮助。

希望这些建议能帮助你解决问题!

解决方法

torchaudio.save("word_level_output.wav", torch.from_numpy(audio_array_en[0]).unsqueeze(0), 24000)
# torchaudio.save("self_introduction_output.wav", torch.from_numpy(audio_array_en[0]), 24000)

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

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

相关文章

【银河麒麟高级服务器操作系统】修改容器中journal服务日志存储位置无效—分析及解决方案

了解更多银河麒麟操作系统全新产品&#xff0c;请点击访问 麒麟软件产品专区&#xff1a;https://product.kylinos.cn 开发者专区&#xff1a;https://developer.kylinos.cn 文档中心&#xff1a;https://documentkylinos.cn 服务器环境以及配置 【机型】 整机类型/架构&am…

HTML:表格重点

用表格就用table caption为该表上部信息&#xff0c;用来说明表的作用 thead为表头主要信息&#xff0c;效果加粗 tbody为表格中的主体内容 tr是 table row 表格的行 td是table data th是table heading表格标题 &#xff0c;一般表格第一行的数据都是table heading

[创业之路-187]:《华为战略管理法-DSTE实战体系》-1-从UTStarcom的发展历程,如何辩证的看企业初期发展太顺利中的危机

目录 一、UTStarcom&#xff08;UT斯达康&#xff09;的发展历程 1、创立与初期发展 2、快速成长与上市 3、技术创新与业务拓展 4、战略调整与持续发展 二、从UTStarcom的发展历程&#xff0c;如何辩证的看企业初期发展太顺利中的危机 1、企业初期发展的顺利表现 2、顺…

ubuntu系统生成SSL证书配置https

自签名【Lets Encrypt】的测试证书&#xff0c;有效期三个月。 第一步&#xff1a;安装acme&#xff0c;如果没有安装git&#xff0c;需要提前安装 下载came资源 git clone https://github.com/Neilpang/acme.sh.git 无法访问&#xff0c;可以试用gitee的资源&#xff0c;安…

CentOS 7 环境下常见的操作和配置

目录 1. CentOS 7 中的 vsftpd 配置与使用 安装与启动 vsftpd 配置 vsftpd&#xff08;/etc/vsftpd/vsftpd.conf&#xff09; 常见命令 2. 使用 yum 包管理器 3. 安全性与防火墙配置 开放端口 4. 使用 systemd 管理服务 5. SELinux 配置 查看 SELinux 状态 临时禁用…

《AI教学能力:开启教育新纪元》

一、摘要 AI 在教育领域的应用日益广泛&#xff0c;对教学能力产生了深远影响。本文将深入探讨 AI 教学能力的核心技术、实际应用、教学模式与策略、全球实践以及未来趋势&#xff0c;为教育的现代化发展提供参考。 摘要&#xff1a; AI 在教育领域的应用及其对教学能力的影响…

【信息系统项目管理师】第10章:项目进度管理过程详解

文章目录 一、规划进度管理1、输入2、工具与技术3、输出 二、定义活动1、输入2、工具与技术3、输出 三、排列活动顺序1、输入2、工具与技术3、输出 四、估算活动持续时间1、输入2、工具与技术3、输出 五、制订进度计划1、输入2、工具与技术3、输出 六、控制进度1、输入2、工具与…

域渗透入门靶机之HTB-Cicada

easy难度的windows靶机 信息收集 端口探测 nmap -sT --min-rate 10000 -p- 10.10.11.35 -oA ./port 发现开放了53&#xff0c;88&#xff0c;389等端口&#xff0c;推测为域控 进一步信息收集&#xff0c;对爆破的端口进行更加详细的扫描 小tips&#xff1a;对于众多的端口&…

pgsql中如何设计维度表、度量表、事实表、大宽表

在 PostgreSQL 中设计维度表、度量表、事实表和大宽表需要遵循数据仓库建模的最佳实践。以下是如何设计这些表的详细步骤&#xff0c;包括建模的结构、示例 SQL 代码以及注意事项。 1. 维度表 (Dimension Table) 设计步骤&#xff1a; 确定维度&#xff1a;识别需要的维度&am…

单片机:实现贪吃蛇(附带源码)

单片机实现贪吃蛇游戏是一个较为复杂的项目&#xff0c;涉及到硬件控制、程序设计、图形显示、输入处理等方面。这里我们以基于8051单片机为例&#xff0c;详细介绍如何通过硬件和软件来实现一个简单的贪吃蛇游戏。为了让解释更加清晰&#xff0c;我们将逐步分析贪吃蛇的游戏逻…

zerotier实现内网穿透(访问内网服务器)

moo 内网穿透工具 实用工具&#xff1a;zerotier 目录 内网穿透工具 Windows下zerotier安装 ubuntu系统下的zerotier安装 使用moon加速 Windows下zerotier安装 有了网络之后&#xff0c;会给你一个网络id&#xff0c;这个网络id是非常重要的&#xff0c;其它设备要加入…

v-for遍历多个el-popover;el-popover通过visible控制显隐;点击其他隐藏el-popover

场景&#xff1a;el-popover通过visible控制显隐&#xff1b;同时el-popover是遍历生成的多个。 原文档的使用visible后就不能点击其他地方使其隐藏 主要监听全局点击事件即可 <template><div><template v-for"(item,index) in arr" :key"index&…

Scala的隐式转换规则

一&#xff0c; scala中的隐式转换规则 1.显式定义规则 2.无歧在同一作用域不可以有歧义&#xff0c;即当有两个变量定义的类型相同时&#xff0c;只能保留一个。&#xff09; 3.定义域规则 4.不能多次转换规则&#xff08;从源类型到目的地类型中间是一次性转换的 &#…

Robust Depth Enhancement via Polarization Prompt Fusion Tuning

paper&#xff1a;论文地址 code&#xff1a;github项目地址 今天给大家分享一篇2024CVPR上的文章&#xff0c;文章是用偏振做提示学习&#xff0c;做深度估计的。模型架构图如下 这篇博客不是讲这篇论文的内容&#xff0c;感兴趣的自己去看paper&#xff0c;主要是分享环境&…

vue3学习——Attribute 绑定(v-bind)

在 Vue 中&#xff0c;mustache 语法 (即双大括号) 只能用于文本插值。为了给 attribute 绑定一个动态值&#xff0c;需要使用 v-bind 指令&#xff1a; <div v-bind:id"dynamicId"></div> 指令是由 v- 开头的一种特殊 attribute。它们是 Vue 模板语法…

TCP 2

文章目录 Tcp状态三次握手四次挥手理解TIME WAIT状态 如上就是TCP连接管理部分 流量控制滑动窗口快重传 延迟应答原理 捎带应答总结TCP拥塞控制拥塞控制的策略 -- 每台识别主机拥塞的机器都要做 面向字节流 Tcp状态 建立连接时 断开连接时 三次握手 tcp三次握手时我们想看看…

帝可得项目redis连接不上

首先我一切配置都没问题&#xff1a; 1. redis-server启动 2. 可视化界面显示redis已连接 原因&#xff1a; 不知道是不是因为不同版本的问题(因为我之前的sky就没这个问题) 这里把password改成auth就可以了

(长期更新)《零基础入门 ArcGIS(ArcMap) 》实验二----网络分析(超超超详细!!!)

相信实验一大家已经完成了&#xff0c;对Arcgis已进一步熟悉了&#xff0c;现在开启第二个实验 ArcMap实验--网络分析 目录 ArcMap实验--网络分析 1.1 网络分析介绍 1.2 实验内容及目的 1.2.1 实验内容 1.2.2 实验目的 2.2 实验方案 2.3 实验流程 2.3.1 实验准备 2.3.2 空间校正…

利用Python结合Web技术实现图像引擎

本篇指南将教你如何使用Python和Selenium库来构建一个自动化图像引擎&#xff0c;该引擎能够根据指定参数自动截取网页快照&#xff0c;并将生成的图片存储到云端。此工具还可以通过消息队列接收任务指令&#xff0c;非常适合需要批量处理网页截图的应用场景。 1. 准备环境 确…

iPhone 17 Air基本确认,3个大动作

近段时间&#xff0c;果粉圈都在讨论一个尚未发布的新品&#xff1a;iPhone 17 Air&#xff0c;苹果又要来整新活了。 从供应链消息来看&#xff0c;iPhone 17 Air本质上是Plus的替代品&#xff0c;主要是在维持“大屏”这一卖点的同时&#xff0c;增加了“轻薄”属性&#xff…