livetalking应用场景
Livetalking是一款实时数字人驱动系统,支持WebRTC协议视频流输出。主要功能包括:1)文字实时播报,内置多种TTS服务;2)智能问答,默认集成阿里云Qwen大模型,支持替换为其他模型;3)语音输入播报,可直接上传音频文件或通过WebSocket传输实时音频流。系统提供灵活接口,支持JSON和Form-data数据格式,适用于各类数字人交互场景,用户可根据需求选择内置服务或对接外部AI模
·
livetalking的核心功能是能够实时驱动数字人生成视频流,视频流采用webrtc协议,可以在任意支持h5 webview的软件上播放。下面具体聊聊各种具体应用场景。
- 输入文字,数字人实时播报
livetalking内部自带tts功能,支持多种tts服务,包括gptsovirs、cosyvoice、腾讯云tts、火山云tts等。通过内部tts将输入文字转化成实时语音驱动数字人播报。
具体使用:调用human接口,type选echo,如
/human
{
‘text’: ‘hello’,
‘type’: 'echo',
‘sessionid’:xxx
}
- 输入问题,数字人实时回答
livetalking内部有自带的大模型使用示例,使用阿里云qwen模型,能够接收外部输入文字,生成应答文字。然后用tts生成语音驱动数字人。如果需要更换大模型,只需要修改项目中llm.py,把大模型调用api更换成自己的即可。
具体使用:调用human接口,type选chat,如
/human
{
‘text’: ‘hello’,
‘type’: 'chat',
‘sessionid’:xxx
}
另外如果需要与数字人实时语音对话,只需要在前端调用asr服务把语音转成文字,然后输入给livetalking即可。
- 输入语音,数字人实时播报
如果外部已经有生成好的语音,也可以直接输入给livetalking驱动数字人实时播报。
具体使用:调用humanaudio接口,如
/humanaudio
form{
‘file’: binary,
‘sessionid’:xxx
}
其中body部分为form表单,不是json结构体,并且file字段为二进制数据,示例
fileinput = document.getElementById('fileInput')
const formData = new FormData(); // form-data数据类型
formData.append('file', fileinput.files[0]);// 获取文件信息,添加到创建的formData数据类型中,file为数据的键名
// const audioBlob = new Blob(audioChunks, {type: 'audio/wav'});
// const formData = new FormData();
// formData.append('file', audioBlob,'recorded_audio.wav');
formData.append('sessionid', parseInt(sessionid))
// 调用接口
fetch('/humanaudio', {
method: 'POST',
body: formData
})
如果外部生成的音频是实时流式片段,如外部tts生成的音频流或者音频对话大模型直接生成音频流,可以通过购买扩展功能将音频流用websocket输入给livetalking驱动数字人实时播报。
总结
livetalking内部自带大模型和tts服务的调用,外部可以直接输入文字,用livetalking自带的大模型和tts功能与数字人对话。 也可以用外部的大模型生成文字应答,输入给livetaking,用内部的tts功能让数字人播报文字。 还可以用外部的大模型和tts直接生成音频,输入给livetalking让数字人做语音播报。
更多推荐

所有评论(0)