Skip to content

Commit 91822c8

Browse files
committed
Added model
1 parent 32a7a75 commit 91822c8

File tree

3 files changed

+49
-21
lines changed

3 files changed

+49
-21
lines changed

cmd/api/elevenlabs.go

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@ func elRegister(flags *Flags) {
5454
Description: "Elevenlabs API",
5555
Parse: elParse,
5656
Fn: []Fn{
57+
{Name: "models", Call: elModels, Description: "Gets a list of available models"},
5758
{Name: "voices", Call: elVoices, Description: "Return registered voices"},
5859
{Name: "voice", Call: elVoice, Description: "Return one voice", MinArgs: 1, MaxArgs: 1, Syntax: "<voice-id>"},
5960
{Name: "settings", Call: elVoiceSettings, Description: "Return voice settings, or default settings. Set voice settings from -stability, -similarity-boost and -use-speaker-boost flags", MaxArgs: 1, Syntax: "(<voice-id>)"},
@@ -121,6 +122,14 @@ func elParse(flags *Flags, opts ...client.ClientOpt) error {
121122
/////////////////////////////////////////////////////////////////////
122123
// API CALL FUNCTIONS
123124

125+
func elModels(ctx context.Context, w *tablewriter.Writer, args []string) error {
126+
models, err := elClient.Models()
127+
if err != nil {
128+
return err
129+
}
130+
return w.Write(models)
131+
}
132+
124133
func elVoices(ctx context.Context, w *tablewriter.Writer, args []string) error {
125134
voices, err := elClient.Voices()
126135
if err != nil {

pkg/elevenlabs/model.go

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
package elevenlabs
2+
3+
import (
4+
// Packages
5+
client "github.com/mutablelogic/go-client"
6+
)
7+
8+
///////////////////////////////////////////////////////////////////////////////
9+
// SCHEMA
10+
11+
type Model struct {
12+
Id string `json:"model_id" writer:",width:30"`
13+
Name string `json:"name" writer:",width:30,wrap"`
14+
Description string `json:"description,omitempty" writer:",wrap"`
15+
CanBeFineTuned bool `json:"can_be_fine_tuned" writer:",width:5"`
16+
CanDoTextToSpeech bool `json:"can_do_text_to_speech" writer:",width:5"`
17+
CanDoVoiceConversion bool `json:"can_do_voice_conversion" writer:",width:5"`
18+
CanUseStyle bool `json:"can_use_style" writer:",width:5"`
19+
CanUseSpeakerBoost bool `json:"can_use_speaker_boost" writer:",width:5"`
20+
ServesProVoices bool `json:"serves_pro_voices" writer:",width:5"`
21+
TokenCostFactor float32 `json:"token_cost_factor" writer:",width:5,right"`
22+
RequiresAlphaAccess bool `json:"requires_alpha_access,omitempty" writer:",width:5"`
23+
Languages []struct {
24+
Id string `json:"language_id"`
25+
Name string `json:"name"`
26+
} `json:"languages,omitempty" writer:",wrap"`
27+
}
28+
29+
///////////////////////////////////////////////////////////////////////////////
30+
// PUBLIC METHODS
31+
32+
// Return models
33+
func (c *Client) Models() ([]Model, error) {
34+
var response []Model
35+
if err := c.Do(nil, &response, client.OptPath("models")); err != nil {
36+
return nil, err
37+
}
38+
return response, nil
39+
}

pkg/elevenlabs/voice.go

Lines changed: 1 addition & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package elevenlabs
22

33
import (
44
// Packages
5+
56
"github.com/djthorpe/go-errors"
67
"github.com/mutablelogic/go-client"
78
)
@@ -113,27 +114,6 @@ func (c *Client) DeleteVoice(Id string) error {
113114
return nil
114115
}
115116
116-
// Add a voice
117-
func (c *Client) AddVoice(Name, Description string) error {
118-
var request voiceAddRequest
119-
120-
// Check parameters
121-
if Name == "" {
122-
return errors.ErrBadParameter.With("Name")
123-
}
124-
125-
// Set request
126-
request.Name = Name
127-
request.Description = Description
128-
129-
// Execute request
130-
if err := c.Do(request, nil, client.OptPath("voices", "add")); err != nil {
131-
return err
132-
}
133-
134-
// Return success
135-
return nil
136-
}
137117
138118
///////////////////////////////////////////////////////////////////////////////
139119
// PAYLOAD METHODS

0 commit comments

Comments
 (0)