Generate real estate voiceover text
curl --request POST \
--url https://backend.tensorpix.ai/api/v2/real-estate/projects/{project_id}/voiceover/generate-text/ \
--header 'Authorization: <api-key>'import requests
url = "https://backend.tensorpix.ai/api/v2/real-estate/projects/{project_id}/voiceover/generate-text/"
headers = {"Authorization": "<api-key>"}
response = requests.post(url, headers=headers)
print(response.text)const options = {method: 'POST', headers: {Authorization: '<api-key>'}};
fetch('https://backend.tensorpix.ai/api/v2/real-estate/projects/{project_id}/voiceover/generate-text/', 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://backend.tensorpix.ai/api/v2/real-estate/projects/{project_id}/voiceover/generate-text/",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>"
],
]);
$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://backend.tensorpix.ai/api/v2/real-estate/projects/{project_id}/voiceover/generate-text/"
req, _ := http.NewRequest("POST", url, nil)
req.Header.Add("Authorization", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://backend.tensorpix.ai/api/v2/real-estate/projects/{project_id}/voiceover/generate-text/")
.header("Authorization", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://backend.tensorpix.ai/api/v2/real-estate/projects/{project_id}/voiceover/generate-text/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"created_at": "2023-11-07T05:31:56Z",
"audio_asset": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"file": "<string>",
"duration_s": 123,
"file_size": 123,
"bitrate": 123,
"sample_rate": 123,
"channels": 123
},
"caption_asset": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"created_at": "2023-11-07T05:31:56Z",
"name": "<string>",
"file": "<string>"
},
"text_asset": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"created_at": "2023-11-07T05:31:56Z",
"text": "<string>"
},
"metadata": "<unknown>"
}{
"detail": "<unknown>",
"error_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}{
"detail": "<string>",
"error_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}{
"detail": "<string>",
"error_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}{
"detail": "<string>",
"error_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}{
"detail": "<string>",
"error_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}{
"error": "<string>",
"error_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}Real Estate Voiceover
Generate real estate voiceover text
Generate and save one voiceover script from project property data and ordered shot descriptions. The project must have is_voiceover_enabled set to true. The backend creates any missing shot image descriptions before it writes the script. When the text changes, the backend deletes old voiceover audio and captions.
POST
/
api
/
v2
/
real-estate
/
projects
/
{project_id}
/
voiceover
/
generate-text
/
Generate real estate voiceover text
curl --request POST \
--url https://backend.tensorpix.ai/api/v2/real-estate/projects/{project_id}/voiceover/generate-text/ \
--header 'Authorization: <api-key>'import requests
url = "https://backend.tensorpix.ai/api/v2/real-estate/projects/{project_id}/voiceover/generate-text/"
headers = {"Authorization": "<api-key>"}
response = requests.post(url, headers=headers)
print(response.text)const options = {method: 'POST', headers: {Authorization: '<api-key>'}};
fetch('https://backend.tensorpix.ai/api/v2/real-estate/projects/{project_id}/voiceover/generate-text/', 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://backend.tensorpix.ai/api/v2/real-estate/projects/{project_id}/voiceover/generate-text/",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>"
],
]);
$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://backend.tensorpix.ai/api/v2/real-estate/projects/{project_id}/voiceover/generate-text/"
req, _ := http.NewRequest("POST", url, nil)
req.Header.Add("Authorization", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://backend.tensorpix.ai/api/v2/real-estate/projects/{project_id}/voiceover/generate-text/")
.header("Authorization", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://backend.tensorpix.ai/api/v2/real-estate/projects/{project_id}/voiceover/generate-text/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"created_at": "2023-11-07T05:31:56Z",
"audio_asset": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"file": "<string>",
"duration_s": 123,
"file_size": 123,
"bitrate": 123,
"sample_rate": 123,
"channels": 123
},
"caption_asset": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"created_at": "2023-11-07T05:31:56Z",
"name": "<string>",
"file": "<string>"
},
"text_asset": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"created_at": "2023-11-07T05:31:56Z",
"text": "<string>"
},
"metadata": "<unknown>"
}{
"detail": "<unknown>",
"error_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}{
"detail": "<string>",
"error_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}{
"detail": "<string>",
"error_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}{
"detail": "<string>",
"error_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}{
"detail": "<string>",
"error_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}{
"error": "<string>",
"error_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}Authorizations
tokenAuthjwtAuth
Token-based authentication with required prefix "Token"
Path Parameters
Response
Serializer for VoiceoverAsset with nested audio and text.
Datetime when the record was created.
Serializer for AudioAsset with basic fields.
Show child attributes
Show child attributes
Serialize one generated caption asset.
Show child attributes
Show child attributes
Serializer for TextAsset with basic fields.
Show child attributes
Show child attributes
Voiceover - e.g. extra description fields
Was this page helpful?