项目简介
语音合成,语音合成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.0reponse_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)