Maandishi kwenda Sauti ya Google
Mfumo wa neva wa Google wa maandishi kwenda sauti wenye sauti za WaveNet. Zaidi ya sauti 380 katika lugha 50+ zenye msaada wa SSML.
✓ Sauti 380+
✓ Lugha 50+
✓ Ubora wa WaveNet
✓ Msaada wa SSML
Uthibitishaji
Ili kufikia Google TTS kupitia API ya Doitong, tumia ufunguo wako wa API ya Doitong. Ujumuishe kwenye mutation ya GraphQL au vichwa vya habari vya REST API.
// GraphQL Header
{
"Authorization": "Bearer YOUR_API_KEY"
}
// REST Header
"X-API-Key": "YOUR_API_KEY"
Anza Haraka
Anza kutumia Google TTS API ndani ya dakika chache tu. Fuata hatua hizi rahisi ili kuunda tts yako ya kwanza.
Hatua ya 1: Pata Ufunguo Wako wa API
Jisajili kwa akaunti ya Doitong na uende kwenye dashibodi yako ili kutengeneza ufunguo wa API.
Hatua ya 2: Tuma Ombi Lako la Kwanza
Tumia mojawapo ya mifano ya kodi hapa chini ili kutuma ombi lako la kwanza la API.
curl -X POST https://api.doitong.com/graphql \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{
"query": "mutation Generate($input: GenerateInput!) { generate(input: $input) { id status type provider url metadata creditCost } }",
"variables": {
"input": {
"type": "AUDIO",
"provider": "google-tts",
"input": {
"text": "Hello world, this is a text to speech example.",
"voice": "en-US-neural"
},
"options": {
"speed": 1.0
}
}
}
}'
const response = await fetch('https://api.doitong.com/graphql', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': 'Bearer YOUR_API_KEY'
},
body: JSON.stringify({
query: `
mutation GenerateSpeech($input: TTSInput!) {
generateSpeech(input: $input) {
id
audioUrl
duration
}
}
`,
variables: {
input: {
service: 'google-tts',
text: 'Hello world, this is a text to speech example.',
voice: 'en-US-neural',
speed: 1.0
}
}
})
});
const data = await response.json();
console.log('Result:', data.data.generate);
import requests
import json
url = "https://api.doitong.com/graphql"
headers = {
"Content-Type": "application/json",
"Authorization": "Bearer YOUR_API_KEY"
}
query = """
mutation Generate($input: GenerateInput!) {
generate(input: $input) {
id
status
type
provider
url
metadata
creditCost
}
}
"""
variables = {
"input": {
"type": "AUDIO",
"provider": "google-tts",
"input": {
"text": "Hello world, this is a text to speech example.",
"voice": "en-US-neural"
},
"options": {
"speed": 1.0
}
}
}
response = requests.post(url, json={
"query": query,
"variables": variables
}, headers=headers)
data = response.json()
print("Result:", data["data"]["generate"])
mutation Generate($input: GenerateInput!) {
generate(input: $input) {
id
status
type
provider
url
metadata
creditCost
createdAt
}
}
# Variables
{
"input": {
"type": "AUDIO",
"provider": "google-tts",
"input": {
"text": "Hello world, this is a text to speech example.",
"voice": "en-US-neural"
},
"options": {
"speed": 1.0,
"pitch": 1.0,
"language": "en",
"version": "neural2"
}
}
}
Bei
Google TTS API hutumia mfumo wa bei unaozingatia salio. Salio hutumiwa kulingana na ugumu na muda wa maudhui yaliyoundwa.
| Kipengele | Salio | Maelezo |
|---|---|---|
| Sauti ya Kawaida | Salio 1 kwa kila herufi 100 | Sauti za msingi za neva (neural) |
| Sauti ya Premium | Salio 2 kwa kila herufi 100 | Sauti za hali ya juu zenye hisia |
Vituo vya API
Google TTS API inapatikana kupitia kituo chetu kimoja cha GraphQL.
Kituo cha GraphQL
POST https://api.doitong.com/graphql
Kituo cha REST
POST https://api.doitong.com/v1/tts
Vigezo
Vigezo vinavyopatikana kwa maombi ya Google TTS API:
| Kigezo | Aina | Lazima | Maelezo |
|---|---|---|---|
service |
String | Yes | Kitambulisho cha huduma: "google-tts" |
version |
String | No | Model version: "wavenet", "neural2" |
webhookUrl |
String | No | URL ya kupokea arifa za kukamilika |
Mfumo wa Majibu
Majibu yote ya API hufuata mfumo thabiti:
Jibu la Mafanikio
{
"data": {
"tts": {
"id": "abc123xyz",
"status": "processing",
"url": null,
"webhookUrl": "https://your-webhook.com/callback",
"createdAt": "2024-01-01T00:00:00Z"
}
}
}
Jibu la Kukamilika
{
"data": {
"tts": {
"id": "abc123xyz",
"status": "completed",
"url": "https://cdn.doitong.com/outputs/abc123xyz.mp3",
"duration": null,
"createdAt": "2024-01-01T00:00:00Z"
}
}
}
Ushughulikiaji wa Hitilafu
API hutumia misimbo ya hali ya HTTP ya kawaida na hutoa ujumbe wa hitilafu wenye maelezo ya kina.
Misimbo ya Hitilafu ya Kawaida
| Msimbo wa Hali | Aina ya Hitilafu | Maelezo |
|---|---|---|
| 400 | Bad Request | Invalid parameters or malformed request |
| 401 | Unauthorized | Missing or invalid API key |
| 402 | Payment Required | Insufficient credits |
| 429 | Too Many Requests | Rate limit exceeded |
| 500 | Internal Server Error | Server error, please retry |
Mfumo wa Jibu la Hitilafu
{
"errors": [
{
"message": "Insufficient credits for this operation",
"extensions": {
"code": "INSUFFICIENT_CREDITS",
"creditsRequired": 100,
"creditsAvailable": 50
}
}
]
}
Webhooks
Pokea arifa za papo hapo wakati uundaji wa tts yako unapokamilika.
Kusanidi Webhooks
Include a <code>webhookUrl</code> parameter in your request to receive a POST notification when processing is complete.
Data ya Webhook
{
"id": "abc123xyz",
"status": "completed",
"url": "https://cdn.doitong.com/outputs/abc123xyz.mp3",
"service": "google-tts",
"createdAt": "2024-01-01T00:00:00Z",
"completedAt": "2024-01-01T00:01:00Z",
"metadata": {
"duration": null,
"width": null,
"height": null
}
}
Usalama wa Webhook
Maombi yote ya webhook yanajumuisha saini kwenye kichwa cha habari kwa ajili ya uthibitishaji:
X-Doitong-Signature: sha256=abc123...
Vikomo vya Matumizi
Ili kuhakikisha matumizi ya haki na utulivu wa mfumo, vikomo vifuatavyo vinatumika:
| Mpango | Maombi/Dakika | Kazi Zinazoendelea Pamoja | Kikomo cha Kila Siku |
|---|---|---|---|
| Bure | 10 | 1 | 100 |
| Starter | 30 | 3 | 1,000 |
| Pro | 60 | 10 | 10,000 |
| Enterprise | Maalum | Maalum | Bila Kikomo |
X-RateLimit-Limit: Maximum requests per windowX-RateLimit-Remaining: Requests remainingX-RateLimit-Reset: Window reset timestamp
Mbinu Bora
1. Boresha Maelekezo Yako
Andika maelekezo (prompts) yaliyo wazi na yenye maelezo kwa matokeo bora zaidi:
- Be specific about visual elements, style, and mood
- Include details about lighting, camera angles, and composition
- Avoid contradictory or impossible requests
2. Shughulikia Uchakataji wa Async
Uundaji hufanyika kwa njia ya asinkronasi. Weka mfumo mzuri wa polling au webhooks:
// Polling example
async function pollStatus(jobId) {
let status = 'processing';
while (status === 'processing') {
await sleep(2000); // Wait 2 seconds
const result = await checkJobStatus(jobId);
status = result.status;
}
return result;
}
3. Urejeshi wa Hitilafu
Weka mantiki ya kujaribu tena yenye kuchelewa kwa ongezeko (exponential backoff):
async function retryWithBackoff(fn, maxRetries = 3) {
for (let i = 0; i < maxRetries; i++) {
try {
return await fn();
} catch (error) {
if (i === maxRetries - 1) throw error;
await sleep(Math.pow(2, i) * 1000);
}
}
}
4. Fuatilia Matumizi ya Salio
Fuatilia matumizi yako ya salio ili kuepuka kukatizwa kwa huduma:
- Check credit balance before large batch operations
- Set up alerts for low credit thresholds
- Implement credit-aware request queuing
Uko Tayari Kuanza?
Jiunge na maelfu ya watengenezaji wanaotumia Google TTS API kuunda maudhui ya kustaajabisha