当前位置: 首页 > news >正文

python cosyVoice实现tts文本转语音、音频(未完成)

文章目录

    • 步骤

chatTts需要连外网不好用,想着本地弄个。
阿里开源项目cosyVoice(舒适语音)(是cosy,不是cos)评级比较不错。

步骤

1、pycharm工作区新建文件夹cosyVoice-demo,进入文件夹clone代码。
https://github.com/FunAudioLLM/CosyVoice.git# 这个git地址
2、pycharm打开该项目,python解释器选3.10,版本很高容易不支持。
3、安装依赖

python-m pip install--upgrade pip pip install torch torchaudio--index-url https://download.pytorch.org/whl/cu121 pip install-r requirements.txt

如果官方脚本不可用,手动安装(可选,这个作为requirements.txt备用):

pip install modelscope funasr hydra-core omegaconf conformer diffusers transformers accelerate soundfile librosa

但是报错了:ModuleNotFoundError: No module named ‘pkg_resources’
[end of output]
note: This error originates from a subprocess, and is likely not a problem with pip.
ERROR: Failed to build ‘openai-whisper’ when getting requirements to build wheel

安装了好多次还是过不去。

4、尝试取消隔离安装

pip install--no-build-isolation-r requirements.txt

跳过openai-whisper这个报错了,但是又遇到一堆报错,解不掉了,先这样吧。python大项目的依赖真心头疼

5、新建test_cosyvoice.py文件,内容:

importosimportsysimporttorchfromcosyvoice.cli.cosyvoiceimportCosyVoicefromcosyvoice.utils.file_utilsimportload_wav# 初始化模型# 注意:首次运行会自动下载模型,请确保网络连接正常# 如果本地已下载,可以指定 local_dirprint("正在加载 CosyVoice 模型...")cosyvoice=CosyVoice('iic/CosyVoice-300M')# 如果是 SFT 版本 (指令控制更强),使用:# cosyvoice = CosyVoice('iic/CosyVoice-300M-SFT')output_dir='./output'os.makedirs(output_dir,exist_ok=True)print("模型加载完成,开始生成...")# --- 场景 1: 零样本音色克隆 (Zero-Shot Cloning) ---# 你需要准备一个参考音频文件 (ref.wav),时长 3-10 秒,清晰的人声# 如果没有,可以先跳过此段,使用预置音色ref_audio_path='assets/ref.wav'# 请替换为你自己的参考音频路径ifos.path.exists(ref_audio_path):print(f"使用参考音频:{ref_audio_path}进行音色克隆...")prompt_speech_16k=load_wav(ref_audio_path,16000)# 生成语音fori,jinenumerate(cosyvoice.inference_zero_shot('欢迎来到 2026 年,人工智能已经无处不在,你觉得今天天气怎么样?','这是一个非常神奇的时刻,我们终于实现了完美的语音合成。',# 参考音频对应的文本 (可选,但推荐提供以提高准确度)prompt_speech_16k,stream=False)):output_path=f'{output_dir}/zero_shot_output_{i}.wav'withopen(output_path,'wb')asf:f.write(j['tts'].read())print(f"零样本克隆完成,保存至:{output_path}")else:print("未找到参考音频,跳过零样本克隆测试。请将你的录音保存为 assets/ref.wav")# --- 场景 2: 指令控制 (Instruct TTS) - 需要 SFT 模型 ---# 注意:只有加载 'iic/CosyVoice-300M-SFT' 时才支持此功能print("\n尝试指令控制生成 (需要 SFT 模型)...")try:# 重新初始化 SFT 模型 (如果上面没加载)if'cosyvoice_sft'notinlocals():cosyvoice_sft=CosyVoice('iic/CosyVoice-300M-SFT')# 使用自然语言指令控制情感text_with_instruction="<|zh|><|happy|> 太棒了!我们终于成功了!<|end|>"# 注意:不同版本的指令格式可能不同,以上仅为示例,具体参考官方文档# 新版可能直接支持: "用开心的语气说:太棒了!"# 这里演示标准的 SFT 推理 (假设模型支持)fori,jinenumerate(cosyvoice_sft.inference_instruct('用非常悲伤且缓慢的语气朗读:雨一直在下,仿佛天空也在哭泣。','中文女',# 预设音色stream=False)):output_path=f'{output_dir}/instruct_output_{i}.wav'withopen(output_path,'wb')asf:f.write(j['tts'].read())print(f"指令控制完成,保存至:{output_path}")exceptExceptionase:print(f"指令控制测试失败 (可能是模型版本不对):{e}")print("\n所有任务结束!请在 output 文件夹查看生成的 wav 文件。")
http://www.jsqmd.com/news/519508/

相关文章:

  • 别再死记硬背了!用Keil5和STM32F103C8T6搞懂GPIO八种模式,看这篇就够了
  • QCLAW 浏览器联通指南:原理、架构与配置详解
  • 大容量硬盘空间管理实战:用EternalBlaze硬链接技术优化TB级存储资源
  • LabVIEW打造轻量级无人机GCS地面站:从地平仪到电子地图的全流程解析
  • 从杜邦分析到RFM模型:手把手教你用Excel实现7大商业分析框架
  • 从YouTube到国内大厂,VPU(视频处理单元)如何重塑视频云的技术栈?
  • 重复文件处理的三种方案对比:删除、压缩还是硬链接?EternalBlaze实测报告
  • 深搜算法 6300:Grid Path Construction(2418)
  • 从吾爱论坛到开源神器:EternalBlaze作者的技术初心与硬链接工具诞生记
  • Java面上 HashMap Put方法 扩容机制 实现
  • Ubuntu22.04网络图标消失?5分钟快速修复指南(附详细命令)
  • 3DTiles白膜性能优化指南:如何让SHP建筑模型在Cesium中流畅加载
  • 【嵌入式性能生死线】:C语言驱动CAN FD控制器的7步原子操作加固法(ST/Infineon/NXP全平台验证)
  • 【国产单片机】华大HC32L13系列printf调试实战:从半主机模式到MicroLib的深度解析
  • OpenHarmony开发避坑指南:手把手教你写对BUILD.gn,解决90%的编译问题
  • 利用Mermaid在Markdown中高效构建数据库ER图
  • 别再乱用jet了!Matplotlib中5个最值得推荐的科学可视化colormap及使用场景
  • 2025美赛B题实战复盘:从零构建可持续旅游模型,Python代码全解析
  • FreeDOS 技术揭秘:从开源内核到经典DOS应用的全栈解析
  • ESP32驱动OV7670摄像头(无FIFO)保姆级教程:从GitHub克隆到网页实时显示
  • 华为Eth-Trunk链路聚合实战:从原理到配置详解
  • 锂离子电池恒流恒压充电Simulink仿真模型(CC-CV)及其电路结构与充电过程说明
  • nnUNetV2实战:从零构建医学影像2D分割数据集全流程解析
  • AI代写泛滥后,我实测5款论文降AI神器,帮我从80%拉到2%
  • 深入探讨大数据领域Zookeeper的分布式队列实现
  • OpenCV CSRT目标跟踪实战:从摄像头到无人机,5步搞定复杂场景跟踪
  • NLP工程师必看:AI原生语义检索中的Embedding技术深度剖析
  • HarmonyOS APP<玩转React>开源教程二十:收藏功能实现
  • 从SolarWinds事件看二进制SCA的重要性:你的供应链安全还缺这一环
  • Ubuntu20.04下微信中文输入终极解决方案:修改deepin-wine配置全记录