音声合成(TTS)- 設定ガイド
概要
TTS モジュールは YAML 設定ファイルで設定を管理します。設定ファイルは config/tts_config.yaml にあり、機密性の高い設定情報は環境変数で上書きできます。
設定ファイルの構成
サーバー設定(server)
server:
host: "0.0.0.0" # 服务器监听地址
port: 8003 # 服务器端口
debug: false # 调试模式
TTS 設定(tts)
tts:
# 火山引擎账号配置
volcengine:
app_id: "" # 将从环境变量 VOLCENGINE_TTS_APP_ID 读取
access_token: "" # 将从环境变量 VOLCENGINE_TTS_ACCESS_TOKEN 读取
resource_id: "volc.service_type.10029"
ws_url: "wss://openspeech.bytedance.com/api/v3/tts/bidirection"
# 默认音色配置
default_voice: "zh_female_shuangkuaisisi_emo_v2_mars_bigtts"
# 音频参数配置
audio:
format: "mp3" # 音频格式: mp3, wav, flac
sample_rate: 24000 # 采样率: 8000, 16000, 22050, 24000
enable_timestamp: false # 是否启用时间戳
speech_rate: 1.0 # 语速: 0.5-2.0
loudness_rate: 1.0 # 音量增益: 0.5-2.0
emotion: "" # 情感: happy, sad, angry
emotion_scale: 1.0 # 情感强度: 0.1-2.0
# 处理参数配置
processing:
disable_markdown_filter: true # 禁用Markdown过滤
disable_emoji_filter: true # 禁用表情符号过滤
enable_language_detector: true # 启用语言检测
silence_duration: 0 # 静音持续时间(毫秒)
explicit_language: "" # 明确指定语言: zh, en
# 连接参数
connection:
timeout: 30 # 连接超时时间(秒)
max_retries: 3 # 最大重试次数
retry_delay: 1 # 重试延迟(秒)
音声処理設定(audio_processing)
audio_processing:
enable_enhancement: true # 启用音频增强
enable_normalization: true # 启用音频归一化
sample_format: "int16" # 采样格式
channel_layout: "mono" # 声道布局
ログ設定(logging)
logging:
level: "DEBUG"
format: "%(asctime)s - %(name)s - %(levelname)s - %(message)s"
WebSocket 設定(websocket)
websocket:
max_message_size: 10485760 # 10MB
ping_interval: null # 禁用客户端ping
ping_timeout: 30 # ping超时时间(秒)
フロントエンド設定(frontend)
frontend:
enable_cors: true # 启用CORS
allowed_origins: ["*"] # 允许的跨域来源
static_files: "static" # 静态文件目录
キャッシュ設定(cache)
cache:
enable_cache: true # 启用音频缓存
cache_dir: "cache" # 缓存目录
cache_size: 100 # 最大缓存数量
cache_ttl: 3600 # 缓存有效期(秒)
セキュリティ設定(security)
security:
max_text_length: 5000 # 最大文本长度
rate_limit: 100 # 每分钟请求数限制
enable_auth: false # 启用认证
監視設定(monitoring)
monitoring:
enable_metrics: true # 启用指标收集
metrics_port: 8004 # 指标端口
health_check: true # 启用健康检查
設定項目の詳細
サーバー設定
| 設定項目 |
型 |
デフォルト値 |
説明 |
| host |
string |
“0.0.0.0” |
サーバーの待ち受けアドレス |
| port |
integer |
8003 |
サーバーのポート |
| debug |
boolean |
false |
デバッグモード |
TTS 設定
Volcano Engine の設定
| 設定項目 |
型 |
デフォルト値 |
説明 |
| app_id |
string |
”” |
Volcano Engine の APP ID(環境変数で設定) |
| access_token |
string |
”” |
Volcano Engine のアクセストークン(環境変数で設定) |
| resource_id |
string |
“volc.service_type.10029” |
リソース ID |
| ws_url |
string |
“wss://openspeech.bytedance.com/api/v3/tts/bidirection” |
WebSocket 接続先アドレス |
音声パラメーターの設定
| 設定項目 |
型 |
デフォルト値 |
説明 |
| format |
string |
“mp3” |
音声フォーマット:mp3、wav、flac |
| sample_rate |
integer |
24000 |
サンプリングレート:8000、16000、22050、24000 |
| enable_timestamp |
boolean |
false |
タイムスタンプを有効にするかどうか |
| speech_rate |
float |
1.0 |
話速:0.5~2.0 |
| loudness_rate |
float |
1.0 |
音量ゲイン:0.5~2.0 |
| emotion |
string |
”” |
感情:happy、sad、angry |
| emotion_scale |
float |
1.0 |
感情の強さ:0.1~2.0 |
処理パラメーターの設定
| 設定項目 |
型 |
デフォルト値 |
説明 |
| disable_markdown_filter |
boolean |
true |
Markdown フィルタリングを無効化 |
| disable_emoji_filter |
boolean |
true |
絵文字フィルタリングを無効化 |
| enable_language_detector |
boolean |
true |
言語検出を有効化 |
| silence_duration |
integer |
0 |
無音時間(ミリ秒) |
| explicit_language |
string |
”” |
言語を明示的に指定:zh、en |
接続パラメーターの設定
| 設定項目 |
型 |
デフォルト値 |
説明 |
| timeout |
integer |
30 |
接続タイムアウト(秒) |
| max_retries |
integer |
3 |
最大リトライ回数 |
| retry_delay |
integer |
1 |
リトライ間隔(秒) |
音声処理設定
| 設定項目 |
型 |
デフォルト値 |
説明 |
| enable_enhancement |
boolean |
true |
音声強調を有効化 |
| enable_normalized |
boolean |
true |
音声の正規化を有効化 |
| sample_format |
string |
“int16” |
サンプリングフォーマット |
| channel_layout |
string |
“mono” |
チャンネルレイアウト |
ログ設定
| 設定項目 |
型 |
デフォルト値 |
説明 |
| level |
string |
“DEBUG” |
ログレベル:DEBUG、INFO、WARNING、ERROR |
| format |
string |
”%(asctime)s - %(name)s - %(levelname)s - %(message)s” |
ログフォーマット |
WebSocket 設定
| 設定項目 |
型 |
デフォルト値 |
説明 |
| max_message_size |
integer |
10485760 |
最大メッセージサイズ(バイト) |
| ping_interval |
integer/null |
null |
ping 間隔(秒)。null の場合は無効 |
| ping_timeout |
integer |
30 |
ping タイムアウト(秒) |
フロントエンド設定
| 設定項目 |
型 |
デフォルト値 |
説明 |
| enable_cors |
boolean |
true |
CORS を有効化 |
| allowed_origins |
array |
[“*”] |
許可するクロスオリジンのソース |
| static_files |
string |
“static” |
静的ファイルのディレクトリ |
セキュリティ設定
| 設定項目 |
型 |
デフォルト値 |
説明 |
| max_text_length |
integer |
5000 |
最大テキスト長(文字数) |
| rate_limit |
integer |
100 |
1 分あたりのリクエスト数上限 |
| enable_auth |
boolean |
false |
認証を有効化 |
監視設定
| 設定項目 |
型 |
デフォルト値 |
説明 |
| enable_metrics |
boolean |
true |
メトリクス収集を有効化 |
| metrics_port |
integer |
8004 |
メトリクス用ポート |
| health_check |
boolean |
true |
ヘルスチェックを有効化 |
設定の検証
設定は読み込み時に次のとおり検証されます。
- ポート番号は 1~65535 の範囲内である必要があります
- 音声フォーマットは mp3、wav、flac のいずれかである必要があります
- サンプリングレートは 8000、16000、22050、24000 のいずれかである必要があります
- 最大テキスト長は 0 より大きい必要があります
- レート制限は 0 より大きい必要があります
環境変数による設定
機密性の高い設定情報は環境変数で設定します。次の環境変数に対応しています。
volcenine_tts_app_id - Volcano Engine の APP ID
kan - Volcano Engine のアクセストークン
TTS_SERVER_HOST - サーバーのホストアドレス
TTS_SERVER_PORT - サーバーのポート
TTS_SERVER_DEBUG - デバッグモード
TTS_LOG_LEVEL - ログレベル
TTS_MAX_TEXT_LENGTH - 最大テキスト長
TTS_RATE_LIMIT - レート制限
設定の優先順位:環境変数 > .env ファイル > 設定ファイル > デフォルト値
デフォルト設定ファイル
config/tts_config.yaml が存在しない場合、システムは上記の内容でデフォルト設定ファイルを自動生成します。
設定クラスの構成
コード内では、次のデータクラスで設定を管理しています。
AppConfig:アプリケーション全体の設定
ServerConfig:サーバー設定
TTSConfig:TTS 設定
AudioProcessingConfig:音声処理設定
LoggingConfig:ログ設定
WebSocketConfig:WebSocket 設定
FrontendConfig:フロントエンド設定
CacheConfig:キャッシュ設定
SecurityConfig:セキュリティ設定
MonitoringConfig:監視設定
これらの設定クラスは config/config_manager.py ファイルで定義されています。