Synthesize conversational speech
curl --request POST \
--url https://app.myhero.so/tts/conversational \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"text": "<string>",
"style": "<string>",
"voice": "<string>"
}
'import requests
url = "https://app.myhero.so/tts/conversational"
payload = {
"text": "<string>",
"style": "<string>",
"voice": "<string>"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({text: '<string>', style: '<string>', voice: '<string>'})
};
fetch('https://app.myhero.so/tts/conversational', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://app.myhero.so/tts/conversational",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'text' => '<string>',
'style' => '<string>',
'voice' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://app.myhero.so/tts/conversational"
payload := strings.NewReader("{\n \"text\": \"<string>\",\n \"style\": \"<string>\",\n \"voice\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://app.myhero.so/tts/conversational")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"text\": \"<string>\",\n \"style\": \"<string>\",\n \"voice\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.myhero.so/tts/conversational")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"text\": \"<string>\",\n \"style\": \"<string>\",\n \"voice\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body"<string>"{
"error": "<string>",
"message": "<string>",
"details": [
"<unknown>"
]
}Tts
Synthesize conversational speech
Generates text-to-speech audio in a conversational style and returns the result as a binary audio/mpeg stream.
Accepts text (max 900 chars), an optional style string (defaults to “friendly and natural”), and an optional voice.
Unlike synthesizeSpeech, the response body is raw MP3 bytes, not JSON.
POST
/
tts
/
conversational
Synthesize conversational speech
curl --request POST \
--url https://app.myhero.so/tts/conversational \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"text": "<string>",
"style": "<string>",
"voice": "<string>"
}
'import requests
url = "https://app.myhero.so/tts/conversational"
payload = {
"text": "<string>",
"style": "<string>",
"voice": "<string>"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({text: '<string>', style: '<string>', voice: '<string>'})
};
fetch('https://app.myhero.so/tts/conversational', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://app.myhero.so/tts/conversational",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'text' => '<string>',
'style' => '<string>',
'voice' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://app.myhero.so/tts/conversational"
payload := strings.NewReader("{\n \"text\": \"<string>\",\n \"style\": \"<string>\",\n \"voice\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://app.myhero.so/tts/conversational")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"text\": \"<string>\",\n \"style\": \"<string>\",\n \"voice\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.myhero.so/tts/conversational")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"text\": \"<string>\",\n \"style\": \"<string>\",\n \"voice\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body"<string>"{
"error": "<string>",
"message": "<string>",
"details": [
"<unknown>"
]
}⌘I