mirror of
https://github.com/Yidadaa/ChatGPT-Next-Web.git
synced 2025-08-08 02:04:43 +08:00
upload save record wav file
This commit is contained in:
@@ -127,7 +127,6 @@ export function RealtimeChat({
|
||||
|
||||
const handleResponse = async (response: RTResponse) => {
|
||||
for await (const item of response) {
|
||||
console.log("handleResponse", item);
|
||||
if (item.type === "message" && item.role === "assistant") {
|
||||
const botMessage = createMessage({
|
||||
role: item.role,
|
||||
@@ -156,12 +155,16 @@ export function RealtimeChat({
|
||||
};
|
||||
await Promise.all([textTask(), audioTask()]);
|
||||
}
|
||||
// update message.content
|
||||
chatStore.updateTargetSession((session) => {
|
||||
session.messages = session.messages.concat();
|
||||
});
|
||||
}
|
||||
// upload audio get audio_url
|
||||
const blob = audioHandlerRef.current?.savePlayFile();
|
||||
uploadImage(blob).then((audio_url) => {
|
||||
botMessage.audio_url = audio_url;
|
||||
botMessage.date = new Date().toLocaleString();
|
||||
// botMessage.date = new Date().toLocaleString();
|
||||
// update text and audio_url
|
||||
chatStore.updateTargetSession((session) => {
|
||||
session.messages = session.messages.concat();
|
||||
@@ -174,16 +177,28 @@ export function RealtimeChat({
|
||||
const handleInputAudio = async (item: RTInputAudioItem) => {
|
||||
audioHandlerRef.current?.stopStreamingPlayback();
|
||||
await item.waitForCompletion();
|
||||
const { audioStartMillis, audioEndMillis } = item;
|
||||
// TODO, save input audio_url, and update session
|
||||
console.log("handleInputAudio", item, audioStartMillis, audioEndMillis);
|
||||
const userMessage = createMessage({
|
||||
role: "user",
|
||||
content: item.transcription,
|
||||
});
|
||||
chatStore.updateTargetSession(session, (session) => {
|
||||
session.messages = session.messages.concat([userMessage]);
|
||||
});
|
||||
if (item.transcription) {
|
||||
const userMessage = createMessage({
|
||||
role: "user",
|
||||
content: item.transcription,
|
||||
});
|
||||
chatStore.updateTargetSession(session, (session) => {
|
||||
session.messages = session.messages.concat([userMessage]);
|
||||
});
|
||||
// save input audio_url, and update session
|
||||
const { audioStartMillis, audioEndMillis } = item;
|
||||
// upload audio get audio_url
|
||||
const blob = audioHandlerRef.current?.saveRecordFile(
|
||||
audioStartMillis,
|
||||
audioEndMillis,
|
||||
);
|
||||
uploadImage(blob).then((audio_url) => {
|
||||
userMessage.audio_url = audio_url;
|
||||
chatStore.updateTargetSession((session) => {
|
||||
session.messages = session.messages.concat();
|
||||
});
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
const toggleRecording = async () => {
|
||||
|
Reference in New Issue
Block a user