Get a transcription
curl --request GET \
--url https://api.myvocal.ai/sound_clone/api/v1/stt/transcriptions/{transcriptionId} \
--header 'accessKey: <accesskey>'import requests
url = "https://api.myvocal.ai/sound_clone/api/v1/stt/transcriptions/{transcriptionId}"
headers = {"accessKey": "<accesskey>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {accessKey: '<accesskey>'}};
fetch('https://api.myvocal.ai/sound_clone/api/v1/stt/transcriptions/{transcriptionId}', 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://api.myvocal.ai/sound_clone/api/v1/stt/transcriptions/{transcriptionId}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"accessKey: <accesskey>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.myvocal.ai/sound_clone/api/v1/stt/transcriptions/{transcriptionId}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("accessKey", "<accesskey>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.myvocal.ai/sound_clone/api/v1/stt/transcriptions/{transcriptionId}")
.header("accessKey", "<accesskey>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.myvocal.ai/sound_clone/api/v1/stt/transcriptions/{transcriptionId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["accessKey"] = '<accesskey>'
response = http.request(request)
puts response.read_body{
"code": 123,
"message": "<string>",
"data": {
"transcriptionId": "<string>",
"status": "<string>",
"modelId": "<string>",
"languageHint": "<string>",
"detectedLanguage": "<string>",
"audioDurationMs": "<string>",
"transcript": {},
"billing": {},
"error": {}
}
}Speech to Text
Get a transcription
Read the task state, the transcript and the billing summary.
GET
/
sound_clone
/
api
/
v1
/
stt
/
transcriptions
/
{transcriptionId}
Get a transcription
curl --request GET \
--url https://api.myvocal.ai/sound_clone/api/v1/stt/transcriptions/{transcriptionId} \
--header 'accessKey: <accesskey>'import requests
url = "https://api.myvocal.ai/sound_clone/api/v1/stt/transcriptions/{transcriptionId}"
headers = {"accessKey": "<accesskey>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {accessKey: '<accesskey>'}};
fetch('https://api.myvocal.ai/sound_clone/api/v1/stt/transcriptions/{transcriptionId}', 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://api.myvocal.ai/sound_clone/api/v1/stt/transcriptions/{transcriptionId}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"accessKey: <accesskey>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.myvocal.ai/sound_clone/api/v1/stt/transcriptions/{transcriptionId}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("accessKey", "<accesskey>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.myvocal.ai/sound_clone/api/v1/stt/transcriptions/{transcriptionId}")
.header("accessKey", "<accesskey>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.myvocal.ai/sound_clone/api/v1/stt/transcriptions/{transcriptionId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["accessKey"] = '<accesskey>'
response = http.request(request)
puts response.read_body{
"code": 123,
"message": "<string>",
"data": {
"transcriptionId": "<string>",
"status": "<string>",
"modelId": "<string>",
"languageHint": "<string>",
"detectedLanguage": "<string>",
"audioDurationMs": "<string>",
"transcript": {},
"billing": {},
"error": {}
}
}Returns one transcription from the shared History. Poll this until
See known limitations for current parameter-error classification and
optional-feature behavior. Stop polling terminal tasks; read
status is COMPLETED,
PARTIAL or FAILED.
Path
string
required
The
transcriptionId returned by create, or an id from the History list.Header
string
required
API key for authentication.
Response
Successful REST calls return{ code: 1, message, data }. The fields below are inside data;
JSON downloads are the documented exception and return the transcript view directly.
number
1 for success.string
Result message.
object
Hide properties
Hide properties
string
The MyVocal task id.
string
QUEUED, PROCESSING, RECONCILING, COMPLETED, PARTIAL or FAILED. A real-time task reports COMPLETED
when it settled normally.string
myvocal_stt_v1 for Batch, myvocal_stt_realtime_v1 for a real-time result.string
The requested language, or
auto.string
The detected language, only when the model returned one; otherwise
null. It is never copied
from languageHint. Batch results use three-letter codes (for example eng); real-time lines
use two-letter codes (for example en).string
The analysed audio duration, as a decimal string.
object
null before a result exists; a completed silent recording can have an empty transcript.
text, languageCode, languageConfidence, speakers, segments and channelResults. Each
segment carries id, speakerId, channelIndex, startMs, endMs, text, timingStatus,
tokens and characterAlignments. Entities, the edited text and the per-channel results are
MyVocal fields; a provider value is never exposed raw. revisionStatus is NOT_REQUESTED,
APPLIED (edited text in revisedText), EMPTY or FAILED (with revisionErrorCode; a
real-time edit that did not arrive before the session closed is REVISION_NOT_RECEIVED). In a
combined channel result, a channel’s languageCode is null unless the model returned a
language for that channel.billing to determine actual charges.object
The same billing summary as create.
billableCharacters is what this task actually charges.object
Present only for
FAILED: errorCode, message, retryable, action and requestId.