让声音合成变得简单CosyVoice-api

项目简介

语音合成,语音合成CosyVoice大模型,这是用于 CosyVoice2 的 api 文件,对于希望集成语音识别功能的应用程序开发者而言,CosyVoice 提供了一套全面的API接口来实现这一目标。通过这些API可以轻松地将语音转文字的功能嵌入到各种应用程序之中。

接口介绍

  • 根据内置角色合成文字:接口地址为 /tts,需设置 “text” 和 “role” 两个参数,“role” 可选 “中文女”“中文男”“日语男”“粤语女”“英文女”“英文男”“韩语女” 等,成功返回 wav 音频数据。示例代码中 data 字典包含 “text” 和 “reference_audio”,但 “reference_audio” 在该接口中实际未用到。

  • 同语言克隆音色合成:地址为 /clone_eq,需设置 “text”“reference_audio”“reference_text” 三个参数,其中 “reference_audio” 是克隆音色的参考音频,“reference_text” 是参考音频对应的文字内容,成功返回 wav 数据。示例代码与第一个接口示例代码类似,只是接口地址不同。

  • 兼容 openai tts:接口地址为 /v1/audio/speech,请求方法为 POST,请求类型为 Content-Type: application/json,需设置 “input”“model”“speed”“reponse_format”“voice” 等参数,“model” 固定为 tts-1,“reponse_format” 固定为 wav 音频数据,“voice” 在文字合成时可选不同语言角色,在克隆时填写参考音频路径。示例代码使用了 openai 的 OpenAI 类,通过相关方法和参数创建响应,并将返回的音频数据写入文件。

  • 不同语言音色克隆:地址为 /cone,需设置 “text”“reference_audio” 两


具体为:


根据内置角色合成文字

  • 接口地址: /tts

  • 单纯将文字合成语音,不进行音色克隆

  • 必须设置的参数:

text:需要合成语音的文字

role: ‘中文女’, ‘中文男’, ‘日语男’, ‘粤语女’, ‘英文女’, ‘英文男’, ‘韩语女’ 选择一个

  • 成功返回:wav音频数据

  • 示例代码

data={    "text":"你好啊亲爱的朋友们",    "reference_audio":"10.wav"}
response=requests.post(f'http://127.0.0.1:9933/tts',data=data,timeout=3600)

同语言克隆音色合成

  • 地址:/clone_eq

参考音频发音语言和需要合成的文字语言一致,例如参考音频是中文发音,同时需要根据该音频将中文文本合成为语音

  • 必须设置参数:

text:需要合成语音的文字

reference_audio:需要克隆音色的参考音频

reference_text:参考音频对应的文字内容 参考音频相对于 api.py 的路径,例如引用1.wav,该文件和api.py在同一文件夹内,则填写 1.wav

  • 成功返回:wav数据

  • 示例代码

data={    "text":"你好啊亲爱的朋友们。",    "reference_audio":"10.wav",    "reference_text":"希望你过的比我更好哟。"}
response=requests.post(f'http://127.0.0.1:9933/tts',data=data,timeout=3600)

兼容openai tts

  • 接口地址 /v1/audio/speech

  • 请求方法 POST

  • 请求类型 Content-Type: application/json

  • 请求参数 input: 要合成的文字 model: 固定 tts-1, 兼容openai参数,实际未使用 speed: 语速,默认1.0 reponse_format:返回格式,固定wav音频数据 voice: 仅用于文字合成时,取其一 ‘中文女’, ‘中文男’, ‘日语男’, ‘粤语女’, ‘英文女’, ‘英文男’, ‘韩语女’

用于克隆时,填写引用的参考音频相对于 api.py 的路径,例如引用1.wav,该文件和api.py在同一文件夹内,则填写 1.wav

  • 示例代码

from openai import OpenAI
client = OpenAI(api_key='12314', base_url='http://127.0.0.1:9933/v1')with client.audio.speech.with_streaming_response.create( model='tts-1', voice='中文女', input='你好啊,亲爱的朋友们', speed=1.0 ) as response: with open('./test.wav', 'wb') as f: for chunk in response.iter_bytes(): f.write(chunk)

不同语言音色克隆

  • 地址:/cone

参考音频发音语言和需要合成的文字语言不一致,例如需要根据中文发音的参考音频,将一段英文文本合成为语音。

  • 必须设置参数:

text:需要合成语音的文字

reference_audio:需要克隆音色的参考音频 参考音频相对于 api.py 的路径,例如引用1.wav,该文件和api.py在同一文件夹内,则填写 1.wav

  • 成功返回:wav数据

  • 示例代码

data={    "text":"親友からの誕生日プレゼントを遠くから受け取り、思いがけないサプライズと深い祝福に、私の心は甘い喜びで満たされた!。",    "reference_audio":"10.wav"}
response=requests.post(f'http://127.0.0.1:9933/tts',data=data,timeout=3600)

项目链接

https://github.com/jianchang512/cosyvoice-api

扫码加入技术交流群,备注「开发语言-城市-昵称

(文:GitHubStore)

欢迎分享

发表评论