Google TTS Neural2 vs Google TTS Standard
何时使用哪一个 — 经过整理的结论,而非基准测试表格
google-tts-standard 便宜 4 倍,每百万字符 $4 对 $16,并且是这条产品线里语言区跨度最广的一个;neural2 是质量更高的合成,但语言区列表短得多,只有 17 个。两者都不支持流式,每次请求都接受 5000 字节,都支持 SSML 和数值型语音参数——而且 standard 对多字节字符只计一次,这对中日韩文案很关键。要覆盖面和成本选 standard,语言区已被覆盖且看重质量时选 neural2。
定价
| Google TTS Neural2 | Google TTS Standard | Δ | |
|---|---|---|---|
| 每 1M 字符 | $16 | $4 | 4× |
费率取自构建时的实时目录;每个模型页面均附有当前的费率卡。
它们的位置 — 以该计费单位计费的所有 7 个 文本转语音 模型的 每 1M 字符的价格(对数刻度)
能力
| Google TTS Neural2 | Google TTS Standard | |
|---|---|---|
| 流式传输 | 否 | 否 |
| SSML | supported | supported |
| 计费单位 | character | character |
规格
| Google TTS Neural2 | Google TTS Standard | |
|---|---|---|
| 输入模态 | 文本 | 文本 |
| 输出模态 | 音频 | 音频 |
| 请求限制 | 5000 bytes | 5000 bytes |
| 声音 | 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. |
| 语言 | 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. |
| 语音控制 |
|
|
| 限制 | 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. |
规格转录自各供应商的文档;若供应商未发布某项数据,则直接省略该行,而非进行推断。 完整来源: Google TTS Neural2 · Google TTS Standard
只需一行代码即可在它们之间切换
两个 ID 都包含在下方的每个选项卡中 — 高亮显示的两行是唯一的修改。相同的端点,相同的密钥,相同的请求结构。
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", # 取消注释此行,注释上一行
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", // 取消注释此行,注释上一行
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" \ # 取消注释此行,注释上一行
-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", // 取消注释此行,注释上一行
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") // 取消注释此行,注释上一行
.file(Paths.get("meeting.mp3"))
.build()).asTranscription();
System.out.println(resp.text());常见问题
Google TTS Neural2 和 Google TTS Standard 哪个更便宜?
在 每 1m 字符 方面,Google TTS Standard 更便宜($4 对比 $16,相差 4.0×)。其他行可能得出相反的结论——上方表格提供了完整信息,实际成本取决于你的组合使用情况。
我可以在不进行两次集成的情况下,对 Google TTS Neural2 和 Google TTS Standard 进行 A/B 测试吗?
可以。两者均通过同一个兼容 OpenAI 的端点提供服务,并使用同一把 API 密钥——切换只需更改一行模型字符串,因此你可以将一部分流量路由到各个模型并直接比较账单。
文本转语音如何计费?
按输入文本的字符数计费,每次请求的字符上限如规格表所示。无论使用哪种模型,长文本都必须在多个请求中分块。