HumansXドキュメントセンター 公式サイトへ ↗

テキスト音声変換_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. ポート番号は 1~65535 の範囲内である必要があります
  2. 音声フォーマットは mp3, wav, flac のいずれかである必要があります
  3. サンプリングレートは 8000, 16000, 22050, 24000 のいずれかである必要があります
  4. 最大テキスト長は 0 より大きい必要があります
  5. レート制限は 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 が存在しない場合、システムは上記の内容でデフォルト設定ファイルを自動生成します。

設定クラスの構成

コード内では、設定は次のデータクラスで管理されます:

  1. AppConfig: アプリケーション全体の設定
  2. ServerConfig: サーバー設定
  3. TTSConfig: TTS 設定
  4. AudioProcessingConfig: 音声処理設定
  5. LoggingConfig: ログ設定
  6. WebSocketConfig: WebSocket 設定
  7. FrontendConfig: フロントエンド設定
  8. CacheConfig: キャッシュ設定
  9. SecurityConfig: セキュリティ設定
  10. MonitoringConfig: モニタリング設定

これらの設定クラスは config/config_manager.py ファイルで定義されています。