fix: 豆包API加model_type=4指定ICL 2.0 + 优化音频参数
之前缺少model_type参数可能回退到ICL 1.0导致音质不如平台调试 Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
@@ -1,6 +1,8 @@
|
|||||||
import os
|
import os
|
||||||
import uuid
|
import uuid
|
||||||
import requests
|
import requests
|
||||||
|
import base64
|
||||||
|
|
||||||
|
|
||||||
def synthesize_doubao(text, speed=1.0, pitch=0, volume=1.0, emotion='neutral'):
|
def synthesize_doubao(text, speed=1.0, pitch=0, volume=1.0, emotion='neutral'):
|
||||||
"""调用火山引擎豆包 Seed-ICL 2.0 语音合成 API"""
|
"""调用火山引擎豆包 Seed-ICL 2.0 语音合成 API"""
|
||||||
@@ -11,7 +13,8 @@ def synthesize_doubao(text, speed=1.0, pitch=0, volume=1.0, emotion='neutral'):
|
|||||||
url = 'https://openspeech.bytedance.com/api/v1/tts'
|
url = 'https://openspeech.bytedance.com/api/v1/tts'
|
||||||
headers = {
|
headers = {
|
||||||
'x-api-key': api_key,
|
'x-api-key': api_key,
|
||||||
'Content-Type': 'application/json'
|
'Content-Type': 'application/json',
|
||||||
|
'X-Api-Resource-Id': 'seed-icl-2.0'
|
||||||
}
|
}
|
||||||
|
|
||||||
payload = {
|
payload = {
|
||||||
@@ -25,11 +28,13 @@ def synthesize_doubao(text, speed=1.0, pitch=0, volume=1.0, emotion='neutral'):
|
|||||||
'voice_type': 'S_LK0j18H72',
|
'voice_type': 'S_LK0j18H72',
|
||||||
'encoding': 'mp3',
|
'encoding': 'mp3',
|
||||||
'speed_ratio': speed,
|
'speed_ratio': speed,
|
||||||
|
'bitrate': 128000,
|
||||||
},
|
},
|
||||||
'request': {
|
'request': {
|
||||||
'reqid': str(uuid.uuid4()),
|
'reqid': str(uuid.uuid4()),
|
||||||
'text': text,
|
'text': text,
|
||||||
'operation': 'query'
|
'operation': 'query',
|
||||||
|
'model_type': 4, # ICL 2.0 模型
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -42,7 +47,6 @@ def synthesize_doubao(text, speed=1.0, pitch=0, volume=1.0, emotion='neutral'):
|
|||||||
|
|
||||||
# 豆包返回格式: {"code": 3000, "data": "base64编码的音频"}
|
# 豆包返回格式: {"code": 3000, "data": "base64编码的音频"}
|
||||||
if result.get('code') == 3000 and result.get('data'):
|
if result.get('code') == 3000 and result.get('data'):
|
||||||
import base64
|
|
||||||
audio_bytes = base64.b64decode(result['data'])
|
audio_bytes = base64.b64decode(result['data'])
|
||||||
return audio_bytes
|
return audio_bytes
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user