Google TTS Neural2 vs Google TTS Standard
Lequel, quand — verdict de synthèse, pas un tableau de benchmarks
google-tts-standard revient 4x moins cher, $4 par million de caractères contre $16, et porte la plus large étendue de locales de la gamme ; neural2 est le rendu de meilleure qualité sur une liste bien plus courte de 17 locales. Aucun des deux ne diffuse, les deux prennent 5000 octets par requête, les deux acceptent SSML et des paramètres numériques de voix — et standard ne compte qu'une fois un caractère multi-octet, ce qui compte pour du texte CJK. Prenez standard pour la portée et le coût, neural2 quand sa locale est couverte et que la qualité prime.
Tarification
| Google TTS Neural2 | Google TTS Standard | Δ | |
|---|---|---|---|
| Par 1M caractères | $16 | $4 | 4× |
Tarifs issus du catalogue en direct au moment de la compilation ; chaque page de modèle présente la fiche actuelle.
Où ils se situent — prix pour 1M de caractères sur l'ensemble des 7 modèles text-to-speech pour cette unité de facturation (échelle logarithmique)
Capacités
| Google TTS Neural2 | Google TTS Standard | |
|---|---|---|
| Streaming | non | non |
| SSML | supported | supported |
| Unité de facturation | character | character |
Spécifications
| Google TTS Neural2 | Google TTS Standard | |
|---|---|---|
| Modalités d'entrée | texte | texte |
| Modalités de sortie | audio | audio |
| Limite de requêtes | 5000 bytes | 5000 bytes |
| Voix | Voice ids follow the locale-plus-letter pattern (en-US-Neural2-F, ja-JP-Neural2-B). Google's comparison table lists Neural2 as general purpose, generally available, controllable via SSML and not streaming-capable, and the docs state the voices are based on the same technology used to create a Custom Voice, letting anyone use Custom Voice technology without training their own. | Voice ids follow a locale-plus-letter pattern (en-US-Standard-A, cmn-CN-Standard-A). Google's comparison table lists Standard as cost efficient, generally available, controllable via SSML and not streaming-capable the docs attribute the voices to parametric text-to-speech passed through vocoders. |
| Langues | A much shorter locale list than Standard. Neural2 voice ids are published for da-DK, de-DE, en-AU, en-GB, en-IN, en-US, es-ES, es-US, fr-CA, fr-FR, hi-IN, it-IT, ja-JP, ko-KR, pt-BR, th-TH and vi-VN. Google notes Neural2 voices are available on global and single-region endpoints. | The widest locale span of any Cloud TTS voice type. Standard voice ids are published for af-ZA, ar-XA, bg-BG, bn-IN, ca-ES, cmn-CN, cmn-TW, cs-CZ, da-DK, de-DE, el-GR, en-AU, en-GB, en-IN, en-US, es-ES, es-US, et-EE, eu-ES, fi-FI, fil-PH, fr-CA, fr-FR, gl-ES, gu-IN, he-IL, hi-IN, hu-HU, id-ID, is-IS, it-IT, ja-JP, kn-IN, ko-KR, lt-LT, lv-LV, ml-IN, mr-IN, ms-MY, nb-NO, nl-BE, nl-NL, pa-IN, pl-PL, pt-BR, pt-PT, ro-RO, ru-RU, sk-SK, sr-RS, sv-SE, ta-IN, te-IN, th-TH, tr-TR, uk-UA, ur-IN, vi-VN and yue-HK. |
| Contrôle vocal |
|
|
| Limites | Content limit of 5,000 total bytes per synthesize request. Output LINEAR16 (with a WAV header), MP3 at 32 kbps, OGG_OPUS, or G.711 MULAW and ALAW optional sampleRateHertz resamples and fails the request if the rate is unsupported for the encoding. Not offered over streaming synthesis. Billed per character including spaces and newlines, with all SSML tags except <mark> counted the multi-byte-counts-once note applies to Standard and WaveNet only. | Content limit of 5,000 total bytes per synthesize request (a single character is multiple bytes in some locales). Output LINEAR16 (returned with a WAV header), MP3 at 32 kbps, OGG_OPUS, or G.711 MULAW and ALAW optional sampleRateHertz resamples and fails the request if the rate is unsupported for the encoding. Not offered over streaming synthesis Long Audio Synthesis (Preview) covers up to 1 million bytes of input asynchronously. Billed per character including spaces and newlines, and all SSML tags except <mark> count for Standard and WaveNet a multi-byte character is charged once. |
Les spécifications sont transcrites à partir de la documentation de chaque fournisseur ; une ligne qu'un fournisseur ne publie pas est omise plutôt que déduite. Sources complètes : Google TTS Neural2 · Google TTS Standard
Basculez de l'un à l'autre avec une seule ligne
Les deux ids sont dans chaque onglet ci-dessous — la paire de lignes en surbrillance est la seule modification. Même endpoint, même clé, même structure de requête.
from openai import OpenAI
client = OpenAI(
base_url="https://synthorai.io/v1",
api_key="sk-syn-...",
)
resp = client.audio.transcriptions.create(
model="google-tts-neural2",
# model="google-tts-standard", # décommentez cette ligne, commentez celle du dessus
file=open("meeting.mp3", "rb"),
language="en",
)
print(resp.text)import OpenAI from "openai";
import fs from "node:fs";
const client = new OpenAI({
baseURL: "https://synthorai.io/v1",
apiKey: "sk-syn-...",
});
const resp = await client.audio.transcriptions.create({
model: "google-tts-neural2",
// model: "google-tts-standard", // décommentez cette ligne, commentez celle du dessus
file: fs.createReadStream("meeting.mp3"),
});
console.log(resp.text);curl https://synthorai.io/v1/audio/transcriptions \
-H "Authorization: Bearer sk-syn-..." \
-F model="google-tts-neural2" \
# -F model="google-tts-standard" \ # décommentez cette ligne, commentez celle du dessus
-F file=@meeting.mp3package main
import (
"context"
"fmt"
"os"
"github.com/openai/openai-go/v3"
"github.com/openai/openai-go/v3/option"
)
func main() {
client := openai.NewClient(
option.WithBaseURL("https://synthorai.io/v1"),
option.WithAPIKey("sk-syn-..."),
)
f, _ := os.Open("meeting.mp3")
resp, _ := client.Audio.Transcriptions.New(context.TODO(), openai.AudioTranscriptionNewParams{
Model: "google-tts-neural2",
// Model: "google-tts-standard", // décommentez cette ligne, commentez celle du dessus
File: f,
})
fmt.Println(resp.Text)
}import com.openai.client.OpenAIClient;
import com.openai.client.okhttp.OpenAIOkHttpClient;
import com.openai.models.audio.transcriptions.*;
import java.nio.file.Paths;
OpenAIClient client = OpenAIOkHttpClient.builder()
.baseUrl("https://synthorai.io/v1")
.apiKey("sk-syn-...")
.build();
Transcription resp = client.audio().transcriptions().create(
TranscriptionCreateParams.builder()
.model("google-tts-neural2")
// .model("google-tts-standard") // décommentez cette ligne, commentez celle du dessus
.file(Paths.get("meeting.mp3"))
.build()).asTranscription();
System.out.println(resp.text());FAQ
Lequel est le moins cher, Google TTS Neural2 ou Google TTS Standard ?
Google TTS Standard est moins cher sur par 1m caractères ($4 contre $16, avec un écart de 4.0×). D'autres lignes peuvent indiquer l'inverse — le tableau ci-dessus contient la fiche complète, et le coût réel dépend de votre combinaison.
Puis-je faire un test A/B de Google TTS Neural2 par rapport à Google TTS Standard sans deux intégrations ?
Oui. Les deux sont servis via le même endpoint compatible OpenAI avec une seule clé API — le basculement est un changement de chaîne de modèle en une ligne, vous pouvez donc diriger une fraction du trafic vers chacun et comparer les factures directement.
Comment la synthèse vocale est-elle facturée ?
Par caractère de texte en entrée, avec un plafond de caractères par requête indiqué dans le tableau des spécifications. Les scripts longs doivent être segmentés sur plusieurs requêtes pour chacun des modèles.