| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 | 
							- import React, { useMemo } from 'react'
 
- import { useTranslation } from 'react-i18next'
 
- import { languages } from '@/i18n/language'
 
- import { PortalSelect } from '@/app/components/base/select'
 
- import cn from '@/utils/classnames'
 
- type Props = {
 
-   currentModel: any
 
-   language: string
 
-   voice: string
 
-   onChange: (language: string, voice: string) => void
 
- }
 
- const TTSParamsPanel = ({
 
-   currentModel,
 
-   language,
 
-   voice,
 
-   onChange,
 
- }: Props) => {
 
-   const { t } = useTranslation()
 
-   const voiceList = useMemo(() => {
 
-     if (!currentModel)
 
-       return []
 
-     return currentModel.model_properties.voices.map((item: { mode: any }) => ({
 
-       ...item,
 
-       value: item.mode,
 
-     }))
 
-   }, [currentModel])
 
-   const setLanguage = (language: string) => {
 
-     onChange(language, voice)
 
-   }
 
-   const setVoice = (voice: string) => {
 
-     onChange(language, voice)
 
-   }
 
-   return (
 
-     <>
 
-       <div className='mb-3'>
 
-         <div className='system-sm-semibold mb-1 flex items-center py-1 text-text-secondary'>
 
-           {t('appDebug.voice.voiceSettings.language')}
 
-         </div>
 
-         <PortalSelect
 
-           triggerClassName='h-8'
 
-           popupClassName={cn('z-[1000]')}
 
-           popupInnerClassName={cn('w-[354px]')}
 
-           value={language}
 
-           items={languages.filter(item => item.supported)}
 
-           onSelect={item => setLanguage(item.value as string)}
 
-         />
 
-       </div>
 
-       <div className='mb-3'>
 
-         <div className='system-sm-semibold mb-1 flex items-center py-1 text-text-secondary'>
 
-           {t('appDebug.voice.voiceSettings.voice')}
 
-         </div>
 
-         <PortalSelect
 
-           triggerClassName='h-8'
 
-           popupClassName={cn('z-[1000]')}
 
-           popupInnerClassName={cn('w-[354px]')}
 
-           value={voice}
 
-           items={voiceList}
 
-           onSelect={item => setVoice(item.value as string)}
 
-         />
 
-       </div>
 
-     </>
 
-   )
 
- }
 
- export default TTSParamsPanel
 
 
  |