这里为你提供一个完整的 Python 脚本。通常 AI Builder Space 兼容 OpenAI 格式的音频转录接口（`/v1/audio/transcriptions`）。

脚本使用 `requests` 库实现，具备**自动创建输出目录**、**断点续传（跳过已处理的文件）**以及**异常捕获**功能。

### 1. 准备工作

安装依赖：
```bash
pip install requests
```

确保设置了环境变量：
```bash
# Linux / macOS
export AI_BUILDER_TOKEN="your_token_here"

# Windows (PowerShell)
$env:AI_BUILDER_TOKEN="your_token_here"

# Windows (CMD)
set AI_BUILDER_TOKEN=your_token_here
```

---

### 2. Python 脚本 (`transcribe_memos.py`)

```python
import os
import sys
from pathlib import Path
import requests

# ----------------- 配置区域 -----------------
# 读取环境变量中的 API Token
API_KEY = os.getenv("AI_BUILDER_TOKEN")

# AI Builder Space 的语音识别 API 端点（如平台有特定完整域名，可修改此 URL）
API_URL = "https://api.ai-builder.space/v1/audio/transcriptions"

# 识别模型，通常为 whisper-1
MODEL_NAME = "whisper-1"

# 支持的常见音频格式后缀
SUPPORTED_EXTENSIONS = {".m4a", ".mp3", ".wav", ".aac", ".ogg", ".flac"}

INPUT_DIR = Path("memos")
OUTPUT_DIR = Path("transcripts")
# --------------------------------------------


def transcribe_audio(file_path: Path, api_key: str) -> str:
    """调用 API 识别单条音频，返回文字"""
    headers = {
        "Authorization": f"Bearer {api_key}"
    }
    
    with open(file_path, "rb") as audio_file:
        files = {
            "file": (file_path.name, audio_file)
        }
        data = {
            "model": MODEL_NAME,
            # 可选: "language": "zh"  # 如果主要是中文，可以指定语言提升准确率
        }
        
        response = requests.post(API_URL, headers=headers, files=files, data=data, timeout=300)
        
    if response.status_code != 200:
        raise Exception(f"API 请求失败 [{response.status_code}]: {response.text}")
    
    result = response.json()
    return result.get("text", "")


def main():
    # 1. 检查环境变量
    if not API_KEY:
        print("错误: 未检测到环境变量 `AI_BUILDER_TOKEN`，请先设置后再运行。", file=sys.stderr)
        sys.exit(1)

    # 2. 检查并创建文件夹
    if not INPUT_DIR.exists() or not INPUT_DIR.is_dir():
        print(f"错误: 找不到输入文件夹 '{INPUT_DIR}'，请先创建并放入录音文件。")
        sys.exit(1)

    OUTPUT_DIR.mkdir(parents=True, exist_ok=True)

    # 3. 获取所有待处理的音频文件
    audio_files = [
        f for f in INPUT_DIR.iterdir() 
        if f.is_file() and f.suffix.lower() in SUPPORTED_EXTENSIONS
    ]

    if not audio_files:
        print(f"提示: '{INPUT_DIR}' 文件夹中没有找到受支持的音频文件。")
        return

    print(f"找到 {len(audio_files)} 个音频文件，开始处理...\n")

    # 4. 逐个识别并保存
    success_count = 0
    for idx, audio_path in enumerate(audio_files, 1):
        target_txt = OUTPUT_DIR / f"{audio_path.stem}.txt"

        # 如果已经存在对应的 txt，跳过处理（避免重复计费和耗时）
        if target_txt.exists():
            print(f"[{idx}/{len(audio_files)}] 跳过已存在: {target_txt.name}")
            continue

        print(f"[{idx}/{len(audio_files)}] 正在转录: {audio_path.name} ...", end="", flush=True)

        try:
            transcript_text = transcribe_audio(audio_path, API_KEY)
            
            # 写入对应的 txt 文件
            with open(target_txt, "w", encoding="utf-8") as f:
                f.write(transcript_text)
                
            print("  完成!")
            success_count += 1
        except Exception as e:
            print(f"  失败! 错误信息: {e}")

    print(f"\n全部处理完毕！本次成功生成 {success_count} 个转录文件，存放在 '{OUTPUT_DIR}' 目录下。")


if __name__ == "__main__":
    main()
```

### 提示：
1. **API 地址**：若你们使用的 AI Builder Space 有专属的域名（例如通过网关部署的私有域名），只需修改脚本头部的 `API_URL` 即可。
2. **语言优化**：如果录音全部是中文，可以在 `data` 字典中加上 `"language": "zh"`，这样能减少 Whisper 首句识别成繁体或其他语言的概率。