chore: tts, stt meta

This commit is contained in:
jialin
2026-02-05 20:35:07 +08:00
parent a1a7979fb3
commit 2765d5edeb
11 changed files with 422 additions and 13 deletions
+55 -3
View File
@@ -14,6 +14,7 @@ import { SendOutlined } from '@ant-design/icons';
import { useIntl, useSearchParams } from '@umijs/max';
import { Button, Spin, Tooltip } from 'antd';
import classNames from 'classnames';
import _ from 'lodash';
import React, {
forwardRef,
useCallback,
@@ -24,8 +25,14 @@ import React, {
useState
} from 'react';
import { AUDIO_SPEECH_TO_TEXT_API, speechToText } from '../apis';
import { SpeechToTextFormat, extractErrorMessage } from '../config';
import {
SpeechToTextFormat,
defaultLanguages,
extractErrorMessage
} from '../config';
import { allLanguages } from '../config/languages';
import { RealtimeParamsConfig as paramsConfig } from '../config/params-config';
import { ParamsSchema } from '../config/types';
import '../style/ground-llm.less';
import '../style/speech-to-text.less';
import '../style/system-message-wrap.less';
@@ -75,6 +82,9 @@ const GroundSTT: React.FC<MessageProps> = forwardRef((props, ref) => {
const { initialize, updateScrollerPosition } = useOverlayScroller();
const { initialize: innitializeParams } = useOverlayScroller();
const [modelMeta, setModelMeta] = useState<any>(null);
const [fieldsConfig, setFieldsConfig] =
useState<ParamsSchema[]>(paramsConfig);
useImperativeHandle(ref, () => {
return {
@@ -265,8 +275,45 @@ const GroundSTT: React.FC<MessageProps> = forwardRef((props, ref) => {
);
};
const handleSelectModel = (model: string) => {
if (!model) return;
const selected = modelList.find((item) => item.value === model);
setModelMeta(selected?.meta || {});
const languages = selected?.meta?.languages || [];
let currentLanguage = [...defaultLanguages];
if (languages.length > 0) {
currentLanguage = allLanguages.filter(
(lang) =>
languages.includes(lang.value) || languages.includes(lang.label)
);
const newConfig = paramsConfig.map((item) => {
const oItem = _.cloneDeep(item);
if (item.name === 'language') {
return {
...oItem,
options: currentLanguage
};
}
return oItem;
});
setFieldsConfig(newConfig);
}
setParams((pre: any) => {
return {
...pre,
language:
selected?.meta?.language || currentLanguage[0]?.value || 'auto',
model: model
};
});
};
const handleOnValuesChange = (changedValues: any, allValues: any) => {
setParams(allValues);
if (changedValues.model) {
handleSelectModel(changedValues.model);
} else {
setParams(allValues);
}
};
useEffect(() => {
@@ -287,6 +334,11 @@ const GroundSTT: React.FC<MessageProps> = forwardRef((props, ref) => {
}
}, [messageList, loading]);
useEffect(() => {
const defaultModel = selectModel || modelList[0]?.value || '';
handleSelectModel(defaultModel);
}, [modelList, selectModel]);
return (
<div
className="ground-left-wrapper"
@@ -447,7 +499,7 @@ const GroundSTT: React.FC<MessageProps> = forwardRef((props, ref) => {
<DynamicParams
ref={formRef}
onValuesChange={handleOnValuesChange}
paramsConfig={paramsConfig}
paramsConfig={fieldsConfig}
initialValues={parameters}
modelList={modelList}
/>
@@ -265,6 +265,7 @@ const GroundTTS: React.FC<MessageProps> = forwardRef((props, ref) => {
..._.pick(model?.meta || {}, MetaFields),
task_type: model?.meta?.task_type,
model: value,
language: model?.meta?.language?.[0] || '',
voice: newList[0]?.value
};
});
@@ -272,7 +273,6 @@ const GroundTTS: React.FC<MessageProps> = forwardRef((props, ref) => {
const handleOnValuesChange = useCallback(
(changeValues: Record<string, any>, allValues: Record<string, any>) => {
console.log('handleOnValuesChange', changeValues, allValues);
if (changeValues.model) {
handleSelectModel(changeValues.model);
} else {