update to add test code

This commit is contained in:
2023-04-18 18:41:47 -07:00
parent 962bce6d94
commit 6305484a6d
5 changed files with 41 additions and 2 deletions

View File

@@ -1,6 +1,8 @@
package client
import "errors"
import (
"errors"
)
const apiEndpoint = "https://api.elevenlabs.io"

View File

@@ -14,6 +14,7 @@ import (
)
func (c Client) TTSWriter(ctx context.Context, w io.Writer, text, voiceID string, options types.SynthesisOptions) error {
options.Clamp()
url := fmt.Sprintf(c.endpoint+"/v1/text-to-speech/%s", voiceID)
opts := types.TTS{
Text: text,
@@ -55,7 +56,8 @@ func (c Client) TTSWriter(ctx context.Context, w io.Writer, text, voiceID string
}
}
func (c Client) TTS(ctx context.Context, w io.Writer, text, voiceID string, options types.SynthesisOptions) ([]byte, error) {
func (c Client) TTS(ctx context.Context, text, voiceID string, options types.SynthesisOptions) ([]byte, error) {
options.Clamp()
url := fmt.Sprintf(c.endpoint+"/v1/text-to-speech/%s", voiceID)
client := &http.Client{}
opts := types.TTS{
@@ -101,6 +103,7 @@ func (c Client) TTS(ctx context.Context, w io.Writer, text, voiceID string, opti
}
func (c Client) TTSStream(ctx context.Context, w io.Writer, text, voiceID string, options types.SynthesisOptions) error {
options.Clamp()
url := fmt.Sprintf(c.endpoint+"/v1/text-to-speech/%s/stream", voiceID)
opts := types.TTS{
Text: text,

View File

@@ -23,6 +23,15 @@ type TTS struct {
VoiceSettings SynthesisOptions `json:"voice_settings,omitempty"` // Voice settings are applied only on the given TTS request.
}
func (so *SynthesisOptions) Clamp() {
if so.Stability > 1 || so.Stability < 0 {
so.Stability = 0.75
}
if so.SimilarityBoost > 1 || so.SimilarityBoost < 0 {
so.SimilarityBoost = 0.75
}
}
type SynthesisOptions struct {
Stability float64 `json:"stability"`
SimilarityBoost float64 `json:"similarity_boost"`