API di sintesi vocale

Convertite il testo in parlato naturale con l'API TTS. 300+ voci AI, clonazione illimitata di voci e generazione di discorsi realistici.
Oltre 300 voci AI
Clone voce
API REST
TTS Editor Interface

Potenti funzioni API TTS

Tutto ciò che serve per integrare un text-to-speech professionale nelle vostre applicazioni
TTS neurale
Oltre 300 voci AIAccesso a voci neurali premium in oltre 33 lingue, tra cui inglese, portoghese, spagnolo, francese, tedesco, cinese, giapponese e altre ancora.
Illimitato
Clone voceCreate voci personalizzate da campioni audio con la clonazione illimitata della voce. Perfetto per contenuti personalizzati e voci di marca.
Globale
33+ lingueSupporto per oltre 33 lingue, tra cui inglese, portoghese, spagnolo, francese, tedesco, cinese, giapponese e molte altre.

Flusso di lavoro API TTS

Convertire il testo in voce con poche e semplici chiamate API
01

Creare un progetto TTS

Creare un nuovo progetto di sintesi vocale con il contenuto del testo e le preferenze vocali.
API Request
curl -X POST "https://dubsmart.ai/api/v1/projects/tts" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "title": "My TTS Project",
    "segments": [
      {
        "text": "Hello, this is a test message",
        "voice": "anna_en_v2",
        "language": "en"
      }
    ]
  }'
02

Monitoraggio dell'elaborazione

Seguite i progressi del vostro progetto TTS mentre elabora il testo in parlato naturale.
API Request
curl -X GET "https://dubsmart.ai/api/v1/projects/tts/{projectId}" \
  -H "Authorization: Bearer YOUR_API_KEY"

# Response:
{
  "id": "project_id",
  "status": "processing",
  "progress": 75,
  "segments": [
    {
      "id": "segment_id",
      "status": "completed",
      "audioUrl": "https://..."
    }
  ]
}
03

Scarica l'audio

Scaricate file audio di alta qualità al termine dell'elaborazione. Ottenete il formato MP3 con una qualità di 22 kHz.
API Request
curl -X GET "https://dubsmart.ai/api/v1/projects/tts/{projectId}" \
  -H "Authorization: Bearer YOUR_API_KEY"

# When status is "completed":
{
  "id": "project_id",
  "status": "completed",
  "audioUrl": "https://storage.dubsmart.ai/audio.mp3",
  "segments": [
    {
      "id": "segment_id",
      "audioUrl": "https://storage.dubsmart.ai/segment.mp3"
    }
  ]
}

Endpoint API TTS

Riferimento API completo per la funzionalità text-to-speech
POST
/projects/tts

Creare un progetto TTS

Creare un nuovo progetto Text-to-Speech con segmenti di testo e configurazioni vocali.
Request
JSON
{
  "title": "My TTS Project",
  "segments": [
    {
      "text": "Hello world! This is a test message.",
      "voice": "anna_en_v2",
      "language": "en",
      "speed": 1.0,
      "pitch": 1.0
    }
  ]
}
Response
JSON
{
  "id": "64f8a2b1c3d4e5f6a7b8c9d0",
  "title": "My TTS Project",
  "status": "pending",
  "progress": 0,
  "createdAt": "2023-09-06T10:30:00Z",
  "segments": [
    {
      "id": "segment_1",
      "text": "Hello world! This is a test message.",
      "status": "pending"
    }
  ]
}
GET
/projects/tts

Ottenere progetti TTS

Recuperare un elenco dei progetti TTS con opzioni di paginazione e filtraggio.
Request
JSON
Query Parameters:
- limit: number (default: 20, max: 100)
- cursor: string (for pagination)
- status: "pending" | "processing" | "completed" | "failed"
Response
JSON
{
  "items": [
    {
      "id": "64f8a2b1c3d4e5f6a7b8c9d0",
      "title": "My TTS Project",
      "status": "completed",
      "progress": 100,
      "createdAt": "2023-09-06T10:30:00Z",
      "audioUrl": "https://storage.dubsmart.ai/audio.mp3"
    }
  ],
  "nextCursor": "next_cursor_value"
}
GET
/projects/tts/{projectId}

Ottenere il progetto TTS per ID

Recupero di informazioni dettagliate su uno specifico progetto TTS
Request
JSON
Path Parameters:
- projectId: string (required)
Response
JSON
{
  "id": "64f8a2b1c3d4e5f6a7b8c9d0",
  "title": "My TTS Project",
  "status": "completed",
  "progress": 100,
  "createdAt": "2023-09-06T10:30:00Z",
  "audioUrl": "https://storage.dubsmart.ai/audio.mp3",
  "segments": [
    {
      "id": "segment_1",
      "text": "Hello world! This is a test message.",
      "status": "completed",
      "audioUrl": "https://storage.dubsmart.ai/segment_1.mp3"
    }
  ]
}
POST
/projects/tts/{projectId}/segments

Creare un segmento TTS

Aggiungere un nuovo segmento di testo a un progetto TTS esistente
Request
JSON
{
  "text": "This is a new segment to add to the project.",
  "voice": "john_en_v2",
  "language": "en",
  "speed": 1.2,
  "pitch": 0.9
}
Response
JSON
{
  "id": "segment_2",
  "text": "This is a new segment to add to the project.",
  "voice": "john_en_v2",
  "status": "pending",
  "createdAt": "2023-09-06T10:45:00Z"
}
PUT
/projects/tts/{projectId}/segments/{segmentId}

Modifica del segmento TTS

Aggiornare il contenuto del testo, la voce o altre proprietà di un segmento.
Request
JSON
{
  "text": "Updated segment text with new content.",
  "voice": "sarah_en_v2",
  "speed": 1.1
}
Response
JSON
{
  "id": "segment_2",
  "text": "Updated segment text with new content.",
  "voice": "sarah_en_v2",
  "status": "pending",
  "updatedAt": "2023-09-06T11:00:00Z"
}

Esempi di codice API TTS

Esempi di codice pronti all'uso in diversi linguaggi di programmazione
JavaScript Example
// JavaScript/Node.js Example
const axios = require('axios');

const API_KEY = 'your_api_key_here';
const BASE_URL = 'https://dubsmart.ai/api/v1';

async function createTTSProject() {
  try {
    // Create TTS project
    const projectResponse = await axios.post(`${BASE_URL}/projects/tts`, {
      title: 'My TTS Project',
      segments: [
        {
          text: 'Hello! This is a sample text for text-to-speech conversion.',
          voice: 'anna_en_v2',
          language: 'en',
          speed: 1.0,
          pitch: 1.0
        },
        {
          text: 'This is the second segment with a different voice.',
          voice: 'john_en_v2',
          language: 'en',
          speed: 1.1,
          pitch: 0.9
        }
      ]
    }, {
      headers: { 'Authorization': `Bearer ${API_KEY}` }
    });

    console.log('Project created:', projectResponse.data);
    
    // Monitor project status
    const projectId = projectResponse.data.id;
    await monitorProjectStatus(projectId);
    
    return projectResponse.data;
  } catch (error) {
    console.error('Error:', error.response?.data || error.message);
  }
}

// Monitor project status
async function monitorProjectStatus(projectId) {
  let status = 'pending';
  
  while (status !== 'completed' && status !== 'failed') {
    await new Promise(resolve => setTimeout(resolve, 5000)); // Wait 5 seconds
    
    const response = await axios.get(`${BASE_URL}/projects/tts/${projectId}`, {
      headers: { 'Authorization': `Bearer ${API_KEY}` }
    });
    
    status = response.data.status;
    console.log(`Project status: ${status}, Progress: ${response.data.progress}%`);
    
    if (status === 'completed') {
      console.log('Audio URL:', response.data.audioUrl);
      console.log('Segments:', response.data.segments);
    }
  }
}

// Usage
createTTSProject();
Python Example
# Python Example
import requests
import time

API_KEY = 'your_api_key_here'
BASE_URL = 'https://dubsmart.ai/api/v1'

def create_tts_project():
    headers = {'Authorization': f'Bearer {API_KEY}'}
    
    try:
        # Create TTS project
        project_data = {
            'title': 'My TTS Project',
            'segments': [
                {
                    'text': 'Hello! This is a sample text for text-to-speech conversion.',
                    'voice': 'anna_en_v2',
                    'language': 'en',
                    'speed': 1.0,
                    'pitch': 1.0
                },
                {
                    'text': 'This is the second segment with a different voice.',
                    'voice': 'john_en_v2',
                    'language': 'en',
                    'speed': 1.1,
                    'pitch': 0.9
                }
            ]
        }
        
        project_response = requests.post(
            f'{BASE_URL}/projects/tts',
            json=project_data,
            headers=headers
        )
        project_response.raise_for_status()
        
        project = project_response.json()
        print(f'Project created: {project}')
        
        # Monitor project status
        project_id = project['id']
        monitor_project_status(project_id, headers)
        
        return project
        
    except requests.exceptions.RequestException as e:
        print(f'Error: {e}')
        if hasattr(e, 'response') and e.response is not None:
            print(f'Response: {e.response.text}')

def monitor_project_status(project_id, headers):
    status = 'pending'
    
    while status not in ['completed', 'failed']:
        time.sleep(5)  # Wait 5 seconds
        
        response = requests.get(
            f'{BASE_URL}/projects/tts/{project_id}',
            headers=headers
        )
        response.raise_for_status()
        
        project_data = response.json()
        status = project_data['status']
        progress = project_data.get('progress', 0)
        
        print(f'Project status: {status}, Progress: {progress}%')
        
        if status == 'completed':
            print(f'Audio URL: {project_data.get("audioUrl")}')
            print(f'Segments: {project_data.get("segments")}')

# Usage
if __name__ == '__main__':
    create_tts_project()
cURL Example
# cURL Examples

# 1. Create TTS Project
curl -X POST "https://dubsmart.ai/api/v1/projects/tts" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "title": "My TTS Project",
    "segments": [
      {
        "text": "Hello! This is a sample text for text-to-speech conversion.",
        "voice": "anna_en_v2",
        "language": "en",
        "speed": 1.0,
        "pitch": 1.0
      },
      {
        "text": "This is the second segment with a different voice.",
        "voice": "john_en_v2", 
        "language": "en",
        "speed": 1.1,
        "pitch": 0.9
      }
    ]
  }'

# 2. Get Project Status
curl -X GET "https://dubsmart.ai/api/v1/projects/tts/{projectId}" \
  -H "Authorization: Bearer YOUR_API_KEY"

# 3. Get All TTS Projects
curl -X GET "https://dubsmart.ai/api/v1/projects/tts?limit=20" \
  -H "Authorization: Bearer YOUR_API_KEY"

# 4. Add Segment to Project
curl -X POST "https://dubsmart.ai/api/v1/projects/tts/{projectId}/segments" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "text": "This is a new segment to add to the project.",
    "voice": "sarah_en_v2",
    "language": "en",
    "speed": 1.2
  }'

# 5. Edit Segment
curl -X PUT "https://dubsmart.ai/api/v1/projects/tts/{projectId}/segments/{segmentId}" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "text": "Updated segment text with new content.",
    "voice": "mike_en_v2",
    "speed": 1.0
  }'

# 6. Delete Project
curl -X DELETE "https://dubsmart.ai/api/v1/projects/tts/{projectId}" \
  -H "Authorization: Bearer YOUR_API_KEY"
PHP Example
<?php
// PHP Example
$apiKey = 'your_api_key_here';
$baseUrl = 'https://dubsmart.ai/api/v1';

function createTTSProject() {
    global $apiKey, $baseUrl;
    
    $headers = [
        'Authorization: Bearer ' . $apiKey,
        'Content-Type: application/json'
    ];
    
    try {
        // Create TTS project
        $projectData = [
            'title' => 'My TTS Project',
            'segments' => [
                [
                    'text' => 'Hello! This is a sample text for text-to-speech conversion.',
                    'voice' => 'anna_en_v2',
                    'language' => 'en',
                    'speed' => 1.0,
                    'pitch' => 1.0
                ],
                [
                    'text' => 'This is the second segment with a different voice.',
                    'voice' => 'john_en_v2',
                    'language' => 'en',
                    'speed' => 1.1,
                    'pitch' => 0.9
                ]
            ]
        ];
        
        $projectResponse = httpRequest(
            $baseUrl . '/projects/tts',
            'POST',
            $projectData,
            $headers
        );
        
        echo "Project created: " . json_encode($projectResponse);
        
        // Monitor project status
        $projectId = $projectResponse['id'];
        monitorProjectStatus($projectId, $headers);
        
        return $projectResponse;
        
    } catch (Exception $e) {
        echo "Error: " . $e->getMessage();
        return null;
    }
}

function monitorProjectStatus($projectId, $headers) {
    global $baseUrl;
    $status = 'pending';
    
    while (!in_array($status, ['completed', 'failed'])) {
        sleep(5); // Wait 5 seconds
        
        $response = httpRequest(
            $baseUrl . '/projects/tts/' . $projectId,
            'GET',
            null,
            $headers
        );
        
        $status = $response['status'];
        $progress = $response['progress'] ?? 0;
        
        echo "Project status: $status, Progress: $progress%" . PHP_EOL;
        
        if ($status === 'completed') {
            echo "Audio URL: " . ($response['audioUrl'] ?? 'N/A') . PHP_EOL;
            echo "Segments: " . json_encode($response['segments'] ?? []) . PHP_EOL;
        }
    }
}

function httpRequest($url, $method, $data, $headers) {
    $ch = curl_init();
    
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
    
    if ($method === 'POST') {
        curl_setopt($ch, CURLOPT_POST, true);
        curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
    } elseif ($method === 'PUT') {
        curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'PUT');
        curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
    }
    
    $response = curl_exec($ch);
    $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
    
    curl_close($ch);
    
    if ($httpCode >= 200 && $httpCode < 300) {
        return json_decode($response, true);
    } else {
        throw new Exception("HTTP Error: " . $httpCode);
    }
}

// Usage
$project = createTTSProject();
?>

FAQ

Che cos'è l'API TTS e come funziona?
La nostra API TTS è un servizio RESTful che converte il testo in voce dal suono naturale utilizzando una tecnologia AI avanzata. È sufficiente inviare una richiesta POST con il contenuto del testo e le preferenze vocali per ricevere in cambio file audio di alta qualità.
Quante voci e lingue sono disponibili?
La nostra API TTS offre l'accesso a oltre 300 voci AI premium in oltre 33 lingue e dialetti. Questo include lingue popolari come inglese, spagnolo, francese, tedesco, cinese, giapponese e molte altre.
È possibile utilizzare la clonazione vocale con l'API?
Sì! La nostra API supporta la clonazione illimitata di voci personalizzate. È possibile creare voci personalizzate fornendo campioni audio, quindi utilizzare queste voci personalizzate nei progetti TTS.
Quali formati e qualità audio supporta l'API?
L'API TTS genera audio di alta qualità in formato MP3.
Quanto tempo occorre per elaborare le richieste di TTS?
Il tempo di elaborazione dipende dalla lunghezza e dalla complessità del testo. Segmenti tipici (1-2 frasi) vengono elaborati in 10-30 secondi.