feat: support voice input

This commit is contained in:
Hk-Gosuto
2024-03-13 23:02:28 +08:00
parent e66766f85d
commit bc061fe0f2
13 changed files with 361 additions and 94 deletions

View File

@@ -79,6 +79,8 @@ const cn = {
return inputHints + "/ 触发补全,: 触发命令";
},
Send: "发送",
StartSpeak: "开始说话",
StopSpeak: "停止说话",
Config: {
Reset: "清除记忆",
SaveAs: "存为面具",
@@ -395,6 +397,12 @@ const cn = {
SubTitle: "生成语音的速度",
},
},
STT: {
Enable: {
Title: "启用语音转文本",
SubTitle: "启用语音转文本",
},
},
},
Store: {
DefaultTopic: "新的聊天",

View File

@@ -81,6 +81,8 @@ const en: LocaleType = {
return inputHints + ", / to search prompts, : to use commands";
},
Send: "Send",
StartSpeak: "Start talking",
StopSpeak: "Stop talking",
Config: {
Reset: "Reset to Default",
SaveAs: "Save as Mask",
@@ -401,6 +403,12 @@ const en: LocaleType = {
SubTitle: "The speed of the generated audio",
},
},
STT: {
Enable: {
Title: "Enable STT",
SubTitle: "Enable Speech-to-Text",
},
},
},
Store: {
DefaultTopic: "New Conversation",

View File

@@ -103,6 +103,36 @@ function getLanguage() {
}
}
const DEFAULT_STT_LANG = "zh-CN";
export const STT_LANG_MAP: Record<Lang, string> = {
cn: "zh-CN",
en: "en-US",
pt: "pt-BR",
tw: "zh-TW",
jp: "ja-JP",
ko: "ko-KR",
id: "id-ID",
fr: "fr-FR",
es: "es-ES",
it: "it-IT",
tr: "tr-TR",
de: "de-DE",
vi: "vi-VN",
ru: "ru-RU",
cs: "cs-CZ",
no: "no-NO",
ar: "ar-SA",
bn: "bn-BD",
sk: "sk-SK",
};
export function getSTTLang(): string {
try {
return STT_LANG_MAP[getLang()];
} catch {
return DEFAULT_STT_LANG;
}
}
export function getLang(): Lang {
const savedLang = getItem(LANG_KEY);