logo
平台介绍
快速接入
密钥管理
模型列表
计费规则
音色列表
文本转语音
音色克隆
文生音色
语音识别
多模态理解模型
音乐生成
图片生成
视频生成
语音Agent
自定义Agent
常见问题
工作台
立即登录

快速接入指南

本指南以文本转语音能力为例,帮助您在 5 分钟内完成首个 API 调用,并直接得到可播放的 mp3 文件。

1. 获取密钥 (API Key)

  1. 登录 账号管理。
  2. 进入 密钥管理 页面。
  3. 点击 "新增 API Key",复制并安全保存您的 API Key。

2. 发起请求

选择您熟悉的编程语言,复制以下示例即可直接运行。

以下示例统一输出 output.mp3。其中 model 需填写模型名称,voice_setting.voice_id 需填写可调用音色 ID。

CURL

bash
复制
curl -X POST https://api.senseaudio.cn/v1/t2a_v2 \ -H "Authorization: Bearer $SENSEAUDIO_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "senseaudio-tts-1.5-260319", "text": "你好,这是来自 SenseAudio 的第一条语音。", "voice_setting": { "voice_id": "male_0004_a" }, "audio_setting": { "format": "mp3", "sample_rate": 32000 } }' -o response.json jq -r '.data.audio' response.json | xxd -r -p > output.mp3

Python

python
复制
import requests # 1. 配置 API Key 和 URL SENSEAUDIO_API_KEY = "SENSEAUDIO_API_KEY" url = "https://api.senseaudio.cn/v1/t2a_v2" # 2. 准备请求数据 payload = { "model": "senseaudio-tts-1.5-260319", "text": "你好,这是来自 SenseAudio 的第一条语音。", "voice_setting": { "voice_id": "male_0004_a", "speed": 1.0, "vol": 1.0, "pitch": 0 }, "audio_setting": { "format": "mp3", "sample_rate": 32000 } } headers = { "Authorization": f"Bearer {SENSEAUDIO_API_KEY}", "Content-Type": "application/json" } # 3. 发送请求 response = requests.post(url, json=payload, headers=headers) result = response.json() if result.get("data") and result["data"].get("audio"): audio_bytes = bytes.fromhex(result["data"]["audio"]) with open("output.mp3", "wb") as f: f.write(audio_bytes) print("语音已保存到 output.mp3") else: print(f"请求失败: {result.get('base_resp', {}).get('status_msg', 'unknown error')}")

JavaScript

javascript
复制
const axios = require('axios'); const fs = require('fs'); const SENSEAUDIO_API_KEY = "SENSEAUDIO_API_KEY"; const url = 'https://api.senseaudio.cn/v1/t2a_v2'; const payload = { model: 'senseaudio-tts-1.5-260319', text: '你好,这是来自 SenseAudio 的第一条语音。', voice_setting: { voice_id: 'male_0004_a', speed: 1.0, vol: 1.0, pitch: 0 }, audio_setting: { format: 'mp3', sample_rate: 32000 } }; axios.post(url, payload, { headers: { 'Authorization': `Bearer ${SENSEAUDIO_API_KEY}`, 'Content-Type': 'application/json' } }) .then(response => { const result = response.data; if (result.data?.audio) { const audioBuffer = Buffer.from(result.data.audio, 'hex'); fs.writeFileSync('output.mp3', audioBuffer); console.log('语音已保存到 output.mp3'); } else { console.error('请求失败:', result.base_resp?.status_msg || 'unknown error'); } }) .catch(error => { console.error('请求失败:', error.message); });

Go

go
复制
package main import ( "bytes" "encoding/hex" "encoding/json" "fmt" "io" "net/http" "os" ) type TTSRequest struct { Model string `json:"model"` Text string `json:"text"` VoiceSetting VoiceSetting `json:"voice_setting"` AudioSetting AudioSetting `json:"audio_setting"` } type VoiceSetting struct { VoiceID string `json:"voice_id"` Speed float64 `json:"speed"` Vol float64 `json:"vol"` Pitch int `json:"pitch"` } type AudioSetting struct { Format string `json:"format"` SampleRate int `json:"sample_rate"` } func main() { SENSEAUDIO_API_KEY := "SENSEAUDIO_API_KEY" url := "https://api.senseaudio.cn/v1/t2a_v2" payload := TTSRequest{ Model: "senseaudio-tts-1.5-260319", Text: "你好,这是来自 SenseAudio 的第一条语音。", VoiceSetting: VoiceSetting{ VoiceID: "male_0004_a", Speed: 1.0, Vol: 1.0, Pitch: 0, }, AudioSetting: AudioSetting{ Format: "mp3", SampleRate: 32000, }, } jsonData, _ := json.Marshal(payload) req, _ := http.NewRequest("POST", url, bytes.NewBuffer(jsonData)) req.Header.Set("Authorization", "Bearer "+SENSEAUDIO_API_KEY) req.Header.Set("Content-Type", "application/json") client := &http.Client{} resp, err := client.Do(req) if err != nil { fmt.Println("请求失败:", err) return } defer resp.Body.Close() body, _ := io.ReadAll(resp.Body) var result map[string]any json.Unmarshal(body, &result) data, ok := result["data"].(map[string]any) if !ok || data["audio"] == nil { fmt.Println("请求失败") return } audioHex, _ := data["audio"].(string) audioBytes, err := hex.DecodeString(audioHex) if err != nil { fmt.Println("音频解码失败:", err) return } os.WriteFile("output.mp3", audioBytes, 0644) fmt.Println("语音已保存到 output.mp3") }

Java

java
复制
import java.io.*; import java.net.HttpURLConnection; import java.net.URL; import org.json.JSONObject; public class SenseAudioQuickStart { public static void main(String[] args) { try { String SENSEAUDIO_API_KEY = "SENSEAUDIO_API_KEY"; String apiUrl = "https://api.senseaudio.cn/v1/t2a_v2"; // 构建请求体 JSONObject voiceSetting = new JSONObject(); voiceSetting.put("voice_id", "male_0004_a"); voiceSetting.put("speed", 1.0); voiceSetting.put("vol", 1.0); voiceSetting.put("pitch", 0); JSONObject audioSetting = new JSONObject(); audioSetting.put("format", "mp3"); audioSetting.put("sample_rate", 32000); JSONObject payload = new JSONObject(); payload.put("model", "senseaudio-tts-1.5-260319"); payload.put("text", "你好,这是来自 SenseAudio 的第一条语音。"); payload.put("voice_setting", voiceSetting); payload.put("audio_setting", audioSetting); // 发送请求 URL url = new URL(apiUrl); HttpURLConnection conn = (HttpURLConnection) url.openConnection(); conn.setRequestMethod("POST"); conn.setRequestProperty("Authorization", "Bearer " + SENSEAUDIO_API_KEY); conn.setRequestProperty("Content-Type", "application/json"); conn.setDoOutput(true); try (OutputStream os = conn.getOutputStream()) { byte[] input = payload.toString().getBytes("utf-8"); os.write(input, 0, input.length); } // 读取响应 try (BufferedReader br = new BufferedReader( new InputStreamReader(conn.getInputStream(), "utf-8"))) { StringBuilder response = new StringBuilder(); String responseLine; while ((responseLine = br.readLine()) != null) { response.append(responseLine.trim()); } JSONObject result = new JSONObject(response.toString()); JSONObject data = result.optJSONObject("data"); if (data != null && data.has("audio")) { byte[] audioBytes = hexStringToByteArray(data.getString("audio")); try (FileOutputStream fos = new FileOutputStream("output.mp3")) { fos.write(audioBytes); } System.out.println("语音已保存到 output.mp3"); } else { JSONObject baseResp = result.optJSONObject("base_resp"); System.out.println("请求失败: " + (baseResp != null ? baseResp.optString("status_msg", "unknown error") : "unknown error")); } } } catch (Exception e) { System.out.println("请求失败: " + e.getMessage()); } } private static byte[] hexStringToByteArray(String hex) { int len = hex.length(); byte[] data = new byte[len / 2]; for (int i = 0; i < len; i += 2) { data[i / 2] = (byte) ((Character.digit(hex.charAt(i), 16) << 4) + Character.digit(hex.charAt(i + 1), 16)); } return data; } }

3. 命名与取值说明

  • model:填写模型名称,例如 senseaudio-tts-1.5-260319,可在 模型列表 中查询。
  • voice_setting.voice_id:填写可调用音色 ID,可在 API 音色服务说明 中获取。
  • output.mp3:示例中的输出文件名,可按业务需要自行修改。