You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ElevenLabs API密钥验证异常排查:有效密钥提示无效的代码问题

排查ElevenLabs API密钥无效问题

编程基础薄弱,使用ElevenLabs(AI文本转语音)API时,已确认API密钥有效且未达订阅额度,但代码运行时仍提示密钥无效。附上相关代码,请求分析问题原因及解决方法。

import speech_recognition as sr
import openai
from elevenlabslib import *

openai.api_key = 'API-KEY'
elevenLabsAPIKey = '你的真实ElevenLabs密钥'  # 替换为实际密钥,注意检查格式

r = sr.Recognizer()
mic = sr.Microphone()
user = ElevenLabsUser(elevenLabsAPIKey)

voice = user.get_voices_by_name("Jarvis")[0]

conversation = [
        {"role": "system", "content": "You are Jarvis from Iron man and your purpose is to be an AI assistant."},
    ]


while True:
    with mic as source:
        r.adjust_for_ambient_noise(source) 
        print("talk")
        audio = r.listen(source)

    word = r.recognize_google(audio)

    if "draw" in word:
        i = word.find("draw")
        i += 5
        response = openai.Image.create(
            prompt=word[i:],
            n=1,
            size="1024x1024"
        )
        image_url = response['data'][0]['url']
        print(word[i:])
        print(image_url)

    else:
        conversation.append({"role": "user", "content": word})

        response = openai.ChatCompletion.create(
        model="gpt-3.5-turbo",  # 修正无效模型名
        messages=conversation
        )

        message = response["choices"][0]["message"]["content"]
        conversation.append({"role": "assistant", "content": message})
        # print(message)
        voice.generate_and_play_audio(message, playInBackground=False)

问题原因分析及解决方法

1. 代码转义字符错误

你提供的代码中存在大量"(HTML转义双引号),这会直接引发Python语法错误,间接导致类似密钥无效的异常提示。解决方法:将所有"替换为正常的双引号"。

2. 密钥存在隐形字符或复制误差

即使确认密钥有效,复制时可能带入空格、换行符等隐形字符,导致实际传递的密钥不符。解决方法:

  • 手动核对密钥首尾字符与ElevenLabs后台的一致性
  • 对密钥字符串做去空白处理:elevenLabsAPIKey = '你的真实密钥'.strip()

3. elevenlabslib库版本问题

旧版本库可能存在API密钥验证逻辑bug,导致误判密钥无效。解决方法:更新到最新版本

pip install --upgrade elevenlabslib

4. 额外代码问题:OpenAI模型名错误

原代码中gpt-3.5是无效模型名,正确的GPT-3.5模型标识为gpt-3.5-turbo,不修正会导致OpenAI请求失败,影响整体运行。

5. 网络环境问题

若网络需要代理才能访问外部API,elevenlabslib默认不使用代理会导致请求失败,被误认为密钥无效。可通过以下代码直接验证密钥和网络:

import requests
api_key = "你的ElevenLabs密钥"
headers = {"xi-api-key": api_key}
response = requests.get("https://api.elevenlabs.io/v1/user", headers=headers)
print(response.status_code)
print(response.json())
  • 返回200和用户信息:密钥与网络正常,问题出在库的使用逻辑
  • 返回401:密钥确实存在问题,需重新核对

内容的提问来源于stack exchange,提问作者stacker599

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 05:25:40