| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132 |
- import { PluginConfig, TTSConfig, TTSConfigValidator } from "../store";
- import Locale from "../locales";
- import { ListItem, Select } from "./ui-lib";
- import {
- DEFAULT_TTS_ENGINE,
- DEFAULT_TTS_ENGINES,
- DEFAULT_TTS_MODELS,
- DEFAULT_TTS_VOICES,
- } from "../constant";
- import { InputRange } from "./input-range";
- export function TTSConfigList(props: {
- ttsConfig: TTSConfig;
- updateConfig: (updater: (config: TTSConfig) => void) => void;
- }) {
- return (
- <>
- <ListItem
- title={Locale.Settings.TTS.Enable.Title}
- subTitle={Locale.Settings.TTS.Enable.SubTitle}
- >
- <input
- type="checkbox"
- checked={props.ttsConfig.enable}
- onChange={(e) =>
- props.updateConfig(
- (config) => (config.enable = e.currentTarget.checked),
- )
- }
- ></input>
- </ListItem>
- {/* <ListItem
- title={Locale.Settings.TTS.Autoplay.Title}
- subTitle={Locale.Settings.TTS.Autoplay.SubTitle}
- >
- <input
- type="checkbox"
- checked={props.ttsConfig.autoplay}
- onChange={(e) =>
- props.updateConfig(
- (config) => (config.autoplay = e.currentTarget.checked),
- )
- }
- ></input>
- </ListItem> */}
- <ListItem title={Locale.Settings.TTS.Engine}>
- <Select
- value={props.ttsConfig.engine}
- onChange={(e) => {
- props.updateConfig(
- (config) =>
- (config.engine = TTSConfigValidator.engine(
- e.currentTarget.value,
- )),
- );
- }}
- >
- {DEFAULT_TTS_ENGINES.map((v, i) => (
- <option value={v} key={i}>
- {v}
- </option>
- ))}
- </Select>
- </ListItem>
- {props.ttsConfig.engine === DEFAULT_TTS_ENGINE && (
- <>
- <ListItem title={Locale.Settings.TTS.Model}>
- <Select
- value={props.ttsConfig.model}
- onChange={(e) => {
- props.updateConfig(
- (config) =>
- (config.model = TTSConfigValidator.model(
- e.currentTarget.value,
- )),
- );
- }}
- >
- {DEFAULT_TTS_MODELS.map((v, i) => (
- <option value={v} key={i}>
- {v}
- </option>
- ))}
- </Select>
- </ListItem>
- <ListItem
- title={Locale.Settings.TTS.Voice.Title}
- subTitle={Locale.Settings.TTS.Voice.SubTitle}
- >
- <Select
- value={props.ttsConfig.voice}
- onChange={(e) => {
- props.updateConfig(
- (config) =>
- (config.voice = TTSConfigValidator.voice(
- e.currentTarget.value,
- )),
- );
- }}
- >
- {DEFAULT_TTS_VOICES.map((v, i) => (
- <option value={v} key={i}>
- {v}
- </option>
- ))}
- </Select>
- </ListItem>
- <ListItem
- title={Locale.Settings.TTS.Speed.Title}
- subTitle={Locale.Settings.TTS.Speed.SubTitle}
- >
- <InputRange
- value={props.ttsConfig.speed?.toFixed(1)}
- min="0.3"
- max="4.0"
- step="0.1"
- onChange={(e) => {
- props.updateConfig(
- (config) =>
- (config.speed = TTSConfigValidator.speed(
- e.currentTarget.valueAsNumber,
- )),
- );
- }}
- ></InputRange>
- </ListItem>
- </>
- )}
- </>
- );
- }
|