Compare commits

..

1 Commits

Author SHA1 Message Date
raojianb
2855b9d9c5 feat: add language and voice rate 2024-09-23 15:54:42 -07:00
2 changed files with 5 additions and 8 deletions

View File

@@ -2,7 +2,7 @@ import type { StartAvatarResponse } from "@heygen/streaming-avatar";
import StreamingAvatar, {
AvatarQuality,
StreamingEvents, TaskMode, TaskType, VoiceEmotion,
StreamingEvents, TaskType, VoiceEmotion,
} from "@heygen/streaming-avatar";
import {
Button,
@@ -91,20 +91,17 @@ export default function InteractiveAvatar() {
const res = await avatar.current.createStartAvatar({
quality: AvatarQuality.Low,
avatarName: avatarId,
knowledgeId: knowledgeId, // Or use a custom `knowledgeBase`.
knowledgeId: knowledgeId,
voice: {
rate: 1.5, // 0.5 ~ 1.5
emotion: VoiceEmotion.EXCITED,
},
language: language,
disableIdleTimeout: true,
});
setData(res);
// default to voice mode
await avatar.current?.startVoiceChat({
useSilencePrompt: false
});
await avatar.current?.startVoiceChat();
setChatMode("voice_mode");
} catch (error) {
console.error("Error starting avatar session:", error);
@@ -120,7 +117,7 @@ export default function InteractiveAvatar() {
return;
}
// speak({ text: text, task_type: TaskType.REPEAT })
await avatar.current.speak({ text: text, taskType: TaskType.REPEAT, taskMode: TaskMode.SYNC }).catch((e) => {
await avatar.current.speak({ text: text }).catch((e) => {
setDebug(e.message);
});
setIsLoadingRepeat(false);

View File

@@ -10,7 +10,7 @@
},
"dependencies": {
"@ai-sdk/openai": "^0.0.34",
"@heygen/streaming-avatar": "^2.0.8",
"@heygen/streaming-avatar": "^2.0.0-beta.1",
"@nextui-org/button": "2.0.34",
"@nextui-org/chip": "^2.0.32",
"@nextui-org/code": "2.0.29",