support tts format
This commit is contained in:
@@ -59,6 +59,7 @@ export interface ChatStore {
|
|||||||
tts_voice: string;
|
tts_voice: string;
|
||||||
tts_speed: number;
|
tts_speed: number;
|
||||||
tts_speed_enabled: boolean;
|
tts_speed_enabled: boolean;
|
||||||
|
tts_format: string;
|
||||||
image_gen_api: string;
|
image_gen_api: string;
|
||||||
image_gen_key: string;
|
image_gen_key: string;
|
||||||
json_mode: boolean;
|
json_mode: boolean;
|
||||||
@@ -79,6 +80,7 @@ export const newChatStore = (
|
|||||||
tts_key = "",
|
tts_key = "",
|
||||||
tts_speed = 1.0,
|
tts_speed = 1.0,
|
||||||
tts_speed_enabled = false,
|
tts_speed_enabled = false,
|
||||||
|
tts_format = "mp3",
|
||||||
toolsString = "",
|
toolsString = "",
|
||||||
image_gen_api = "https://api.openai.com/v1/images/generations",
|
image_gen_api = "https://api.openai.com/v1/images/generations",
|
||||||
image_gen_key = "",
|
image_gen_key = "",
|
||||||
@@ -118,6 +120,7 @@ export const newChatStore = (
|
|||||||
image_gen_api: image_gen_api,
|
image_gen_api: image_gen_api,
|
||||||
image_gen_key: image_gen_key,
|
image_gen_key: image_gen_key,
|
||||||
json_mode: json_mode,
|
json_mode: json_mode,
|
||||||
|
tts_format: tts_format,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -275,6 +278,7 @@ export function App() {
|
|||||||
chatStore.tts_key,
|
chatStore.tts_key,
|
||||||
chatStore.tts_speed,
|
chatStore.tts_speed,
|
||||||
chatStore.tts_speed_enabled,
|
chatStore.tts_speed_enabled,
|
||||||
|
chatStore.tts_format,
|
||||||
chatStore.toolsString,
|
chatStore.toolsString,
|
||||||
chatStore.image_gen_api,
|
chatStore.image_gen_api,
|
||||||
chatStore.image_gen_key,
|
chatStore.image_gen_key,
|
||||||
|
|||||||
@@ -22,6 +22,7 @@ const TTS_VOICES: string[] = [
|
|||||||
"nova",
|
"nova",
|
||||||
"shimmer",
|
"shimmer",
|
||||||
];
|
];
|
||||||
|
const TTS_FORMAT: string[] = ["mp3", "opus", "aac", "flac"];
|
||||||
|
|
||||||
const Help = (props: { children: any; help: string }) => {
|
const Help = (props: { children: any; help: string }) => {
|
||||||
return (
|
return (
|
||||||
@@ -510,6 +511,22 @@ export default (props: {
|
|||||||
help={"TTS Speed"}
|
help={"TTS Speed"}
|
||||||
{...props}
|
{...props}
|
||||||
/>
|
/>
|
||||||
|
<Help help="tts response format">
|
||||||
|
<label className="m-2 p-2">TTS Format</label>
|
||||||
|
<select
|
||||||
|
className="m-2 p-2"
|
||||||
|
value={props.chatStore.tts_format}
|
||||||
|
onChange={(event: any) => {
|
||||||
|
const format = event.target.value as string;
|
||||||
|
props.chatStore.tts_format = format;
|
||||||
|
props.setChatStore({ ...props.chatStore });
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
{TTS_FORMAT.map((opt) => (
|
||||||
|
<option value={opt}>{opt}</option>
|
||||||
|
))}
|
||||||
|
</select>
|
||||||
|
</Help>
|
||||||
<Input
|
<Input
|
||||||
field="image_gen_key"
|
field="image_gen_key"
|
||||||
help="image generation service api key"
|
help="image generation service api key"
|
||||||
|
|||||||
@@ -29,7 +29,7 @@ export default function TTSButton(props: TTSProps) {
|
|||||||
model,
|
model,
|
||||||
input,
|
input,
|
||||||
voice,
|
voice,
|
||||||
response_format: "opus",
|
response_format: props.chatStore.tts_format || "mp3",
|
||||||
};
|
};
|
||||||
if (props.chatStore.tts_speed_enabled) {
|
if (props.chatStore.tts_speed_enabled) {
|
||||||
body["speed"] = props.chatStore.tts_speed;
|
body["speed"] = props.chatStore.tts_speed;
|
||||||
|
|||||||
Reference in New Issue
Block a user