Google TTS Chirp 3 HD vs Google TTS Neural2
Lequel, quand — verdict de synthèse, pas un tableau de benchmarks
google-tts-neural2 revient 1.9x moins cher ($16 par million de caractères contre $30) et prend en charge SSML de plein droit, là où google-tts-chirp3-hd le liste en préversion — mais neural2 ne diffuse pas et publie une liste de locales bien plus courte, 17 locales avec des identifiants de voix nommés. Les deux acceptent 5000 octets par requête et exposent des paramètres numériques de voix. Prenez google-tts-neural2 pour du traitement par lots piloté par SSML dans une locale couverte, google-tts-chirp3-hd pour le streaming et l'étendue des locales.
Tarification
| Google TTS Chirp 3 HD | Google TTS Neural2 | Δ | |
|---|---|---|---|
| Par 1M caractères | $30 | $16 | 1.9× |
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 Chirp 3 HD | Google TTS Neural2 | |
|---|---|---|
| Streaming | oui | non |
| SSML | preview | supported |
| Unité de facturation | character | character |
Spécifications
| Google TTS Chirp 3 HD | Google TTS Neural2 | |
|---|---|---|
| Modalités d'entrée | texte | texte |
| Modalités de sortie | audio | audio |
| Limite de requêtes | 5000 bytes | 5000 bytes |
| Voix | Voices are named after stars and published with a gender: Achernar, Achird, Algenib, Algieba, Alnilam, Aoede, Autonoe, Callirrhoe, Charon, Despina, Enceladus, Erinome, Fenrir, Gacrux, Iapetus, Kore, Laomedeia, Leda, Orus, Pulcherrima, Puck, Rasalgethi, Sadachbia, Sadaltager, Schedar, Sulafat, Umbriel, Vindemiatrix, Zephyr and Zubenelgenubi. A locale prefix forms the id, e.g. en-US-Chirp3-HD-Charon. Google describes the set as 30 distinct styles across many languages. | 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. |
| Langues | ar-XA, bn-IN, bg-BG, yue-HK, hr-HR, cs-CZ, da-DK, nl-BE, nl-NL, en-AU, en-IN, en-GB, en-US, et-EE, fi-FI, fr-CA, fr-FR, de-DE, el-GR, gu-IN, he-IL, hi-IN, hu-HU, id-ID, it-IT, ja-JP, kn-IN, ko-KR, lv-LV, lt-LT, ml-IN, cmn-CN, mr-IN, nb-NO, pl-PL, pt-BR, pa-IN, ro-RO, ru-RU, sr-RS, sk-SK, sl-SI, es-ES, es-US, sw-KE, sv-SE, ta-IN, te-IN, th-TH, tr-TR, uk-UA, ur-IN and vi-VN. | 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. |
| Contrôle vocal |
|
|
| Limites | Content limit of 5,000 total bytes per synthesize request. Default response format LINEAR16 streaming supports ALAW, MULAW, OGG_OPUS and PCM, batch adds MP3, so MP3 is not available on the streaming path. The only voice type Google's comparison table marks as streaming-capable. Generally available in the global, us and eu endpoints plus asia-southeast1, europe-west2 and asia-northeast1, but out of scope for regionalization and data residency. Billed per character including spaces and newlines, with all SSML tags except <mark> counted. | 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. |
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 Chirp 3 HD · Google TTS Neural2
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-chirp3-hd",
# model="google-tts-neural2", # 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-chirp3-hd",
// model: "google-tts-neural2", // 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-chirp3-hd" \
# -F model="google-tts-neural2" \ # 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-chirp3-hd",
// Model: "google-tts-neural2", // 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-chirp3-hd")
// .model("google-tts-neural2") // 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 Chirp 3 HD ou Google TTS Neural2 ?
Google TTS Neural2 est moins cher sur par 1m caractères ($16 contre $30, avec un écart de 1.9×). 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 Chirp 3 HD par rapport à Google TTS Neural2 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.