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 模型...)cosyvoiceCosyVoice(iic/CosyVoice-300M)# 如果是 SFT 版本 (指令控制更强)使用:# cosyvoice CosyVoice(iic/CosyVoice-300M-SFT)output_dir./outputos.makedirs(output_dir,exist_okTrue)print(模型加载完成开始生成...)# --- 场景 1: 零样本音色克隆 (Zero-Shot Cloning) ---# 你需要准备一个参考音频文件 (ref.wav)时长 3-10 秒清晰的人声# 如果没有可以先跳过此段使用预置音色ref_audio_pathassets/ref.wav# 请替换为你自己的参考音频路径ifos.path.exists(ref_audio_path):print(f使用参考音频:{ref_audio_path}进行音色克隆...)prompt_speech_16kload_wav(ref_audio_path,16000)# 生成语音fori,jinenumerate(cosyvoice.inference_zero_shot(欢迎来到 2026 年人工智能已经无处不在你觉得今天天气怎么样,这是一个非常神奇的时刻我们终于实现了完美的语音合成。,# 参考音频对应的文本 (可选但推荐提供以提高准确度)prompt_speech_16k,streamFalse)):output_pathf{output_dir}/zero_shot_output_{i}.wavwithopen(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 模型 (如果上面没加载)ifcosyvoice_sftnotinlocals():cosyvoice_sftCosyVoice(iic/CosyVoice-300M-SFT)# 使用自然语言指令控制情感text_with_instruction|zh||happy| 太棒了我们终于成功了|end|# 注意不同版本的指令格式可能不同以上仅为示例具体参考官方文档# 新版可能直接支持 用开心的语气说太棒了# 这里演示标准的 SFT 推理 (假设模型支持)fori,jinenumerate(cosyvoice_sft.inference_instruct(用非常悲伤且缓慢的语气朗读雨一直在下仿佛天空也在哭泣。,中文女,# 预设音色streamFalse)):output_pathf{output_dir}/instruct_output_{i}.wavwithopen(output_path,wb)asf:f.write(j[tts].read())print(f指令控制完成保存至:{output_path})exceptExceptionase:print(f指令控制测试失败 (可能是模型版本不对):{e})print(\n所有任务结束请在 output 文件夹查看生成的 wav 文件。)
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2438433.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!