mirror of
https://github.com/taigrr/elevenlabs.git
synced 2026-04-02 03:08:57 -07:00
attempt at create voice
This commit is contained in:
@@ -1,12 +1,16 @@
|
|||||||
package client
|
package client
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"bytes"
|
||||||
"context"
|
"context"
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
"errors"
|
"errors"
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"io"
|
||||||
|
"mime/multipart"
|
||||||
"net/http"
|
"net/http"
|
||||||
"os"
|
"os"
|
||||||
|
"strings"
|
||||||
|
|
||||||
"github.com/taigrr/elevenlabs/client/types"
|
"github.com/taigrr/elevenlabs/client/types"
|
||||||
)
|
)
|
||||||
@@ -15,11 +19,27 @@ func (c Client) CreateVoice(ctx context.Context, name, description string, label
|
|||||||
url := c.endpoint + "/v1/voices/add"
|
url := c.endpoint + "/v1/voices/add"
|
||||||
client := &http.Client{}
|
client := &http.Client{}
|
||||||
|
|
||||||
// TODO create body here
|
var b bytes.Buffer
|
||||||
req, err := http.NewRequestWithContext(ctx, http.MethodPost, url, nil)
|
w := multipart.NewWriter(&b)
|
||||||
|
for _, r := range files {
|
||||||
|
var fw io.Writer
|
||||||
|
var err error
|
||||||
|
if fw, err = w.CreateFormFile("files[]", r.Name()); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
if _, err := io.Copy(fw, r); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
w.WriteField("name", name)
|
||||||
|
w.WriteField("description", description)
|
||||||
|
w.WriteField("name", strings.Join(labels, ", "))
|
||||||
|
w.Close()
|
||||||
|
req, err := http.NewRequestWithContext(ctx, http.MethodPost, url, &b)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
req.Header.Set("Content-Type", w.FormDataContentType())
|
||||||
req.Header.Set("xi-api-key", c.apiKey)
|
req.Header.Set("xi-api-key", c.apiKey)
|
||||||
req.Header.Set("User-Agent", "github.com/taigrr/elevenlabs")
|
req.Header.Set("User-Agent", "github.com/taigrr/elevenlabs")
|
||||||
req.Header.Set("accept", "application/json")
|
req.Header.Set("accept", "application/json")
|
||||||
|
|||||||
Reference in New Issue
Block a user