Create Pronunciation Dictionaries
POST https://api.elevenlabs.io/v1/studio/projects//pronunciation-dictionaries Content-Type: application/json
Create a set of pronunciation dictionaries acting on a project. This will automatically mark text within this project as requiring reconverting where the new dictionary would apply or the old one no longer does.
Reference: https://elevenlabs.io/docs/api-reference/studio/create-pronunciation-dictionaries
Servers
Section titled “Servers”https://api.elevenlabs.io(Production, default)https://api.us.elevenlabs.io(Production US)https://api.eu.residency.elevenlabs.io(Production EU)https://api.in.residency.elevenlabs.io(Production India)https://api.sg.residency.elevenlabs.io(Production Singapore)
Request
Section titled “Request”Path parameters
Section titled “Path parameters”project_id(string, required) — The ID of the project to be used. You can use the List projects endpoint to list all the available projects.
Body (application/json)
Section titled “Body (application/json)”This endpoint expects a Body_Create_Pronunciation_Dictionaries_v1_studio_projects__project_id__pronunciation_dictionaries_post.
pronunciation_dictionary_locators(list of PronunciationDictionaryVersionLocatorDBModel, required) — A list of pronunciation dictionary locators (pronunciation_dictionary_id, version_id) encoded as a list of JSON strings for pronunciation dictionaries to be applied to the text. A list of json encoded strings is required as adding projects may occur through formData as opposed to jsonBody. To specify multiple dictionaries use multiple --form lines in your curl, such as --form 'pronunciation_dictionary_locators="{"pronunciation_dictionary_id":"Vmd4Zor6fplcA7WrINey","version_id":"hRPaxjlTdR7wFMhV4w0b"}"' --form 'pronunciation_dictionary_locators="{"pronunciation_dictionary_id":"JzWtcGQMJ6bnlWwyMo7e","version_id":"lbmwxiLu4q6txYxgdZqn"}"'.invalidate_affected_text(boolean, optional, default: true) — This will automatically mark text in this project for reconversion when the new dictionary applies or the old one no longer does.
Response
Section titled “Response”Successful Response
status(string, required) — The status of the create pronunciation dictionary request. If the request was successful, the status will be 'ok'. Otherwise an error message with status 500 will be returned.
Errors
Section titled “Errors”422 Unprocessable Entity Error
Section titled “422 Unprocessable Entity Error”Validation Error
detail(list of ValidationError, optional)
PronunciationDictionaryVersionLocatorDBModel
Section titled “PronunciationDictionaryVersionLocatorDBModel”pronunciation_dictionary_id(string, required)version_id(string, required, nullable)
ValidationError
Section titled “ValidationError”loc(list of ValidationErrorLocItems, required)msg(string, required)type(string, required)
ValidationErrorLocItems
Section titled “ValidationErrorLocItems”Examples
Section titled “Examples”Request
{
"pronunciation_dictionary_locators": [
{
"pronunciation_dictionary_id": "string",
"version_id": "string"
}
]
}Response
{
"status": "ok"
}SDK Code
import { ElevenLabsClient } from "@elevenlabs/elevenlabs-js";
async function main() {
const client = new ElevenLabsClient();
await client.studio.projects.pronunciationDictionaries.create("21m00Tcm4TlvDq8ikWAM", {
pronunciationDictionaryLocators: [
{
pronunciationDictionaryId: "string",
versionId: "string",
},
],
});
}
main();
from elevenlabs import ElevenLabs, PronunciationDictionaryVersionLocator
client = ElevenLabs()
client.studio.projects.pronunciation_dictionaries.create(
project_id="21m00Tcm4TlvDq8ikWAM",
pronunciation_dictionary_locators=[
PronunciationDictionaryVersionLocator(
pronunciation_dictionary_id="string",
version_id="string",
)
],
)
package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.elevenlabs.io/v1/studio/projects/21m00Tcm4TlvDq8ikWAM/pronunciation-dictionaries"
payload := strings.NewReader("{\n \"pronunciation_dictionary_locators\": [\n {\n \"pronunciation_dictionary_id\": \"string\",\n \"version_id\": \"string\"\n }\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(res)
fmt.Println(string(body))
}require 'uri'
require 'net/http'
url = URI("https://api.elevenlabs.io/v1/studio/projects/21m00Tcm4TlvDq8ikWAM/pronunciation-dictionaries")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"pronunciation_dictionary_locators\": [\n {\n \"pronunciation_dictionary_id\": \"string\",\n \"version_id\": \"string\"\n }\n ]\n}"
response = http.request(request)
puts response.read_bodyimport com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;
HttpResponse<String> response = Unirest.post("https://api.elevenlabs.io/v1/studio/projects/21m00Tcm4TlvDq8ikWAM/pronunciation-dictionaries")
.header("Content-Type", "application/json")
.body("{\n \"pronunciation_dictionary_locators\": [\n {\n \"pronunciation_dictionary_id\": \"string\",\n \"version_id\": \"string\"\n }\n ]\n}")
.asString();<?php
require_once('vendor/autoload.php');
$client = new \GuzzleHttp\Client();
$response = $client->request('POST', 'https://api.elevenlabs.io/v1/studio/projects/21m00Tcm4TlvDq8ikWAM/pronunciation-dictionaries', [
'body' => '{
"pronunciation_dictionary_locators": [
{
"pronunciation_dictionary_id": "string",
"version_id": "string"
}
]
}',
'headers' => [
'Content-Type' => 'application/json',
],
]);
echo $response->getBody();using RestSharp;
var client = new RestClient("https://api.elevenlabs.io/v1/studio/projects/21m00Tcm4TlvDq8ikWAM/pronunciation-dictionaries");
var request = new RestRequest(Method.POST);
request.AddHeader("Content-Type", "application/json");
request.AddParameter("application/json", "{\n \"pronunciation_dictionary_locators\": [\n {\n \"pronunciation_dictionary_id\": \"string\",\n \"version_id\": \"string\"\n }\n ]\n}", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);import Foundation
let headers = ["Content-Type": "application/json"]
let parameters = ["pronunciation_dictionary_locators": [
[
"pronunciation_dictionary_id": "string",
"version_id": "string"
]
]] as [String : Any]
let postData = JSONSerialization.data(withJSONObject: parameters, options: [])
let request = NSMutableURLRequest(url: NSURL(string: "https://api.elevenlabs.io/v1/studio/projects/21m00Tcm4TlvDq8ikWAM/pronunciation-dictionaries")! as URL,
cachePolicy: .useProtocolCachePolicy,
timeoutInterval: 10.0)
request.httpMethod = "POST"
request.allHTTPHeaderFields = headers
request.httpBody = postData as Data
let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
if (error != nil) {
print(error as Any)
} else {
let httpResponse = response as? HTTPURLResponse
print(httpResponse)
}
})
dataTask.resume()