Skip to main content
Glama
mod_speaker_info.py2.15 kB
""" mod_speaker_info.py voicevox web apiでspeaker情報を取得する。 """ import requests import json from typing import Dict, Any from pvv_mcp_server.mod_speakers import speakers import logging # ロガーの設定 logger = logging.getLogger(__name__) def speaker_info(speaker_id: str) -> Dict[str, Any]: """ voicevox web apiでspeaker情報を取得する。 Args: speaker_id: 文字列。話者名、または、UUID。 Returns: Dict[str, Any]: 話者情報 Raises: ValueError: 話者が見つからない場合 requests.RequestException: APIリクエストが失敗した場合 """ VOICEVOX_API_BASE = "http://localhost:50021" # UUIDかどうかをチェック(簡易的に `-` を含むかで判定) if "-" in speaker_id: # UUIDの場合、直接APIリクエスト uuid = speaker_id else: # 話者名の場合、speakers関数で話者リストを取得して検索 content = speakers() speakers_list = json.loads(content.decode("utf-8")) # 話者名が部分一致する話者を検索 matched_speaker = None for speaker in speakers_list: if speaker_id.lower() in speaker["name"].lower(): matched_speaker = speaker break if matched_speaker is None: raise ValueError(f"話者 '{speaker_id}' が見つかりませんでした。") uuid = matched_speaker["speaker_uuid"] # speaker_info APIをリクエスト url = f"{VOICEVOX_API_BASE}/speaker_info" params = {"speaker_uuid": uuid, "resource_format":"url"} #print(params) try: response = requests.get(url, params=params, timeout=10) response.raise_for_status() data = response.json() return data except requests.RequestException as e: raise requests.RequestException(f"speaker_info APIリクエストが失敗しました: {e}") if __name__ == "__main__": ret = speaker_info("四国") print(ret)

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/lambda-tuber/pvv-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server