テキスト音声変換_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 設定
火山引擎の設定
| 設定項目 |
型 |
デフォルト値 |
説明 |
| app_id |
string |
”” |
火山引擎の APP ID(環境変数で設定) |
| access_token |
string |
”” |
火山引擎のアクセストークン(環境変数で設定) |
| 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_normalization |
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 より大きい必要があります
環境変数による設定
機密性の高い設定情報は環境変数で設定します。対応している環境変数は次のとおりです:
VOLCENGINE_TTS_APP_ID - 火山引擎の APP ID
VOLCENGINE_TTS_ACCESS_TOKEN - 火山引擎のアクセストークン
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 ファイルで定義されています。