Python开发智能时钟报时功能调用convert_to_audio报参数不匹配错误
报错原因与修复方案
核心错误点
- 普通函数不需要加
self参数:你定义的convert_to_audio是独立函数不是类的成员方法,self是类方法专属的第一个参数,属于多余定义 - 参数数量不匹配:你调用函数时传入了3个字符串参数,但原函数定义只支持接收2个参数(包含没用的
self),自然触发参数数量不匹配的TypeError - 额外隐藏bug:你保存音频用的文件名是
Textaudio.mp3,调用播放时用的是textaudio.mp3,大小写不一致在Mac、Linux系统下会触发文件找不到的报错
修复后完整代码
from datetime import datetime from gtts import gTTS from playsound import playsound now = datetime.now() current_time = now.strftime("%H:%M:%S %p") print("Current Time =", current_time) def playaudio(audio): playsound(audio) # 移除多余self,改用可变参数接收多段文本自动拼接 def convert_to_audio(*text_parts): # 把所有传入的文本片段拼接成完整的播报内容 full_text = ' '.join(text_parts) audio = gTTS(full_text, lang='en') # 统一文件名大小写 audio.save("textaudio.mp3") playaudio("textaudio.mp3") convert_to_audio("Hello Ravi. Good Morning the time is", current_time, "Have a nice day")
可选优化提示
如果需要播报中文内容,把gTTS的lang参数改成lang='zh-cn'即可。
内容的提问来源于stack exchange,提问作者Warmachine
相关产品推荐
相关产品推荐

