如何为Google Text-to-Speech API配置凭证?Python新手求助
解决Google Text-to-Speech API的鉴权错误问题
别担心,这个DefaultCredentialsError是新手使用Google云API时非常常见的问题——本质上就是你的程序找不到用来验证身份的凭证文件。既然你已经有了凭证JSON文件,下面给你两种简单的配置方法:
方法1:通过环境变量配置(推荐)
这种方法不需要修改代码,更安全也更灵活,适合长期使用:
- Windows系统:打开命令提示符,输入以下命令(替换成你的凭证文件实际路径):
之后在同一个命令窗口里运行你的Python脚本即可。set GOOGLE_APPLICATION_CREDENTIALS=C:\path\to\your\service-account-file.json - macOS/Linux系统:打开终端,输入以下命令(替换路径):
同样在这个终端窗口运行脚本。export GOOGLE_APPLICATION_CREDENTIALS="/path/to/your/service-account-file.json"
如果是用IDE(比如PyCharm、VS Code),也可以直接在IDE的运行配置里添加这个环境变量,这样每次运行都会自动加载。
方法2:在代码中显式加载凭证
如果你不想设置环境变量,也可以直接在代码里指定凭证文件的路径,修改后的代码如下:
def synthesize_text(text): """Synthesizes speech from the input string of text.""" from google.cloud import texttospeech from google.oauth2 import service_account # 替换成你的凭证JSON文件的实际路径 credentials = service_account.Credentials.from_service_account_file( '/path/to/your/service-account-file.json' ) # 创建客户端时传入凭证 client = texttospeech.TextToSpeechClient(credentials=credentials) input_text = texttospeech.types.SynthesisInput(text=text) voice = texttospeech.types.VoiceSelectionParams( language_code='en-US', ssml_gender=texttospeech.enums.SsmlVoiceGender.FEMALE) audio_config = texttospeech.types.AudioConfig( audio_encoding=texttospeech.enums.AudioEncoding.MP3) response = client.synthesize_speech(input_text, voice, audio_config) with open('output.mp3', 'wb') as out: out.write(response.audio_content) print('Audio content written to file "output.mp3"')
注意事项
- 一定要把代码里的
/path/to/your/service-account-file.json替换成你本地凭证文件的真实路径,路径里的斜杠要注意:Windows用\或者转义的\\,macOS/Linux用/。 - 凭证文件要妥善保管,不要把它上传到代码仓库(比如GitHub)里,避免泄露权限。
内容的提问来源于stack exchange,提问作者cmb28
相关产品推荐
相关产品推荐

