mirror of
https://github.com/open-webui/open-webui
synced 2025-06-10 08:27:55 +00:00
refac: audio
This commit is contained in:
parent
16615010f7
commit
27417dd771
@ -234,7 +234,7 @@
|
|||||||
bind:value={TTS_VOICE}
|
bind:value={TTS_VOICE}
|
||||||
>
|
>
|
||||||
<option value="" selected={TTS_VOICE !== ''}>{$i18n.t('Default')}</option>
|
<option value="" selected={TTS_VOICE !== ''}>{$i18n.t('Default')}</option>
|
||||||
{#each voices.filter((v) => nonLocalVoices || v.localService === true) as voice}
|
{#each voices as voice}
|
||||||
<option
|
<option
|
||||||
value={voice.voiceURI}
|
value={voice.voiceURI}
|
||||||
class="bg-gray-100 dark:bg-gray-700"
|
class="bg-gray-100 dark:bg-gray-700"
|
||||||
@ -244,15 +244,6 @@
|
|||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="flex items-center justify-between my-1.5">
|
|
||||||
<div class="text-xs">
|
|
||||||
{$i18n.t('Allow non-local voices')}
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="mt-1">
|
|
||||||
<Switch bind:state={nonLocalVoices} />
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
{:else if TTS_ENGINE === 'openai'}
|
{:else if TTS_ENGINE === 'openai'}
|
||||||
<div class=" flex gap-2">
|
<div class=" flex gap-2">
|
||||||
|
@ -913,7 +913,14 @@
|
|||||||
try {
|
try {
|
||||||
await navigator.mediaDevices.getUserMedia({ audio: true, video: true });
|
await navigator.mediaDevices.getUserMedia({ audio: true, video: true });
|
||||||
// If the user grants the permission, proceed to show the call overlay
|
// If the user grants the permission, proceed to show the call overlay
|
||||||
showCallOverlay.set(true);
|
|
||||||
|
if ($config.audio.stt.engine !== 'web') {
|
||||||
|
showCallOverlay.set(true);
|
||||||
|
} else {
|
||||||
|
toast.error(
|
||||||
|
$i18n.t('Call feature is not supported when using Web STT engine')
|
||||||
|
);
|
||||||
|
}
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
// If the user denies the permission or an error occurs, show an error message
|
// If the user denies the permission or an error occurs, show an error message
|
||||||
toast.error($i18n.t('Permission denied when accessing media devices'));
|
toast.error($i18n.t('Permission denied when accessing media devices'));
|
||||||
|
@ -221,11 +221,12 @@
|
|||||||
)
|
)
|
||||||
?.at(0) ?? undefined;
|
?.at(0) ?? undefined;
|
||||||
|
|
||||||
console.log($settings?.audio?.tts?.voice ?? $config?.audio?.tts?.voice);
|
|
||||||
console.log(voices);
|
|
||||||
|
|
||||||
currentUtterance = new SpeechSynthesisUtterance(content);
|
currentUtterance = new SpeechSynthesisUtterance(content);
|
||||||
currentUtterance.voice = voice;
|
|
||||||
|
if (voice) {
|
||||||
|
currentUtterance.voice = voice;
|
||||||
|
}
|
||||||
|
|
||||||
speechSynthesis.speak(currentUtterance);
|
speechSynthesis.speak(currentUtterance);
|
||||||
}
|
}
|
||||||
}, 100);
|
}, 100);
|
||||||
|
@ -279,15 +279,23 @@
|
|||||||
)
|
)
|
||||||
?.at(0) ?? undefined;
|
?.at(0) ?? undefined;
|
||||||
|
|
||||||
|
console.log(voice);
|
||||||
|
|
||||||
const speak = new SpeechSynthesisUtterance(message.content);
|
const speak = new SpeechSynthesisUtterance(message.content);
|
||||||
|
|
||||||
|
console.log(speak);
|
||||||
|
|
||||||
speak.onend = () => {
|
speak.onend = () => {
|
||||||
speaking = null;
|
speaking = null;
|
||||||
if ($settings.conversationMode) {
|
if ($settings.conversationMode) {
|
||||||
document.getElementById('voice-input-button')?.click();
|
document.getElementById('voice-input-button')?.click();
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
speak.voice = voice;
|
|
||||||
|
if (voice) {
|
||||||
|
speak.voice = voice;
|
||||||
|
}
|
||||||
|
|
||||||
speechSynthesis.speak(speak);
|
speechSynthesis.speak(speak);
|
||||||
}
|
}
|
||||||
}, 100);
|
}, 100);
|
||||||
|
Loading…
Reference in New Issue
Block a user