Google TTS Chirp 3 HD vs Google TTS Neural2
Welches Modell wofür
google-tts-neural2 ist 1.9x günstiger ($16 pro Million Zeichen gegenüber $30) und unterstützt SSML regulär, während google-tts-chirp3-hd es als Vorschau führt - aber neural2 streamt nicht und veröffentlicht eine deutlich kürzere Locale-Liste, 17 Locales mit benannten Stimm-IDs. Beide nehmen 5000 Bytes pro Anfrage und bieten numerische Stimmparameter. Nehmen Sie google-tts-neural2 für SSML-getriebene Stapelarbeit in einer abgedeckten Locale, google-tts-chirp3-hd für Streaming und Locale-Breite.
Preise
| Google TTS Chirp 3 HD | Google TTS Neural2 | Δ | |
|---|---|---|---|
| Pro 1M Zeichen | $30 | $16 | 1.9× |
Preise aus dem Live-Katalog, Stand des letzten Builds. Die aktuellen Preise stehen auf der jeweiligen Modellseite.
Einordnung: Preis pro 1M Zeichen aller 7 Text-to-Speech-Modelle mit dieser Abrechnungseinheit (logarithmische Skala)
Fähigkeiten
| Google TTS Chirp 3 HD | Google TTS Neural2 | |
|---|---|---|
| Streaming | ja | nein |
| SSML | preview | supported |
| Abrechnungseinheit | character | character |
Spezifikationen
| Google TTS Chirp 3 HD | Google TTS Neural2 | |
|---|---|---|
| Eingabemodalitäten | Text | Text |
| Ausgabemodalitäten | Audio | Audio |
| Veröffentlicht | 2025-03 | 2022-06-27 |
| Limit pro Anfrage | 5000 bytes | 5000 bytes |
| Stimmen | 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. |
| Sprachen | 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. |
| Stimmsteuerung |
|
|
| Limits | 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. |
Die Spezifikationen stammen aus der Dokumentation des jeweiligen Anbieters. Veröffentlicht ein Anbieter eine Angabe nicht, lassen wir die Zeile weg, statt sie zu schätzen. Vollständige Quellen: Google TTS Chirp 3 HD · Google TTS Neural2
Eine Zeile genügt für den Wechsel
Beide IDs stehen in jedem Tab unten. Die beiden hervorgehobenen Zeilen sind die einzige Änderung. Gleicher Endpunkt, gleicher Schlüssel, gleiches Anfrageformat.
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", # diese Zeile einkommentieren, die darüberliegende auskommentieren
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", // diese Zeile einkommentieren, die darüberliegende auskommentieren
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" \ # diese Zeile einkommentieren, die darüberliegende auskommentieren
-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", // diese Zeile einkommentieren, die darüberliegende auskommentieren
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") // diese Zeile einkommentieren, die darüberliegende auskommentieren
.file(Paths.get("meeting.mp3"))
.build()).asTranscription();
System.out.println(resp.text());FAQ
Welches Modell ist günstiger: Google TTS Chirp 3 HD oder Google TTS Neural2?
Google TTS Neural2 ist bei Pro 1M Zeichen günstiger ($16 vs. $30, Faktor 1.9). Bei anderen Zeilen kann es umgekehrt sein. Die Tabelle oben zeigt alle Preise, und die tatsächlichen Kosten hängen von Ihrem Mix ab.
Kann ich Google TTS Chirp 3 HD gegen Google TTS Neural2 A/B-testen, ohne zweimal zu integrieren?
Ja. Beide laufen über denselben OpenAI-kompatiblen Endpunkt mit einem API-Schlüssel. Für den Wechsel ändern Sie nur eine Zeile, den Modellnamen. So können Sie einen Teil des Traffics an jedes Modell schicken und die Kosten direkt vergleichen.
Wie wird Text-to-Speech abgerechnet?
Pro Zeichen des Eingabetexts, mit einer Obergrenze für die Zeichenzahl pro Anfrage, die in der Spezifikationstabelle steht. Lange Texte müssen Sie bei beiden Modellen auf mehrere Anfragen aufteilen.