我正在参加Trae「超级体验官」创意实践征文, 本文所使用的 Trae 免费下载链接: www.trae.ai/?utm_source…
作为一名野生爪哇后端接口开发,同时是软件狂热收集者,一直在期待好用的 Ai 强力 IDE,这就是今天的主角 Trae。
1. 软件安装
根据官网介绍
Trae(/treɪ/)是一款很智能的 IDE。与 AI 深度集成,提供智能问答、代码自动补全以及基于 Agent 的 AI 自动编程能力。如果使用 Trae 开发项目,则可以极大提升开发效率。
废话少说,我直接拿来用。当前 Trae 最新版本是 1.0.1。由于当前只上线了 mac OS 版本,于是我只能掏出珍藏的苹果本先行体验了。
Trae 首次启动,会进入以下页面:
不得不说,无论是网站还是软件本体的颜值还是很高的。下一步分别选择自己喜欢的主题和简体中文语言。Trae 会询问是否导入 VS Code 或 Cursor 配置,如果同意的话软件会从对应的 IDE 中获取插件、IDE 设置、快捷键设置等信息并一键导入到 Trae 中。
在配置过程中,该 IDE 还会询问是否添加 Trae 相关的命令行,添加后可以在终端中使用命令行更快速地完成 Trae 相关的操作。这样看来万物都基于 VS Code。文档说添加 trae 命令后可以快速唤起 Trae。这不就是和 code 项目名
打开项目一模一样。
为了激活 Trae 的 AI 能力,我们还需要登录账号。由于 Trae 支持 Github 账号联合登录,还是很不错的,免去了我每次使用不同服务都得注册的烦恼。我家的 Github 时好时坏,不过这次竟然能登录上。如果你们的登不上的可以试试安装 Watt Toolkit 并开启 Github 加速。接着我发现 Trae 支持的国家和地区没🇨🇳,看来我还不得不开启魔法🧙♀️。
千辛万苦终于登录成功了,进入 Trae 主界面,如下图所示:
2. 小试牛刀
2.1 使用 Builder 模式从 0 一键构建
根据官网介绍,Builder 模式可以帮助你从 0 到 1 开发一个完整的项目。可以将它无缝融入到项目构建的流程中。
我只是在对话框中输入了我想创建一个文本转语音的 python 程序
并会车,Trae 接收到指示后就开始工作了。
等到 Trae 工作完,我点击接受全部变更,Trae 就会生成对应的 txt 和 py 共计 2 个文件,并之后将 pip install 命令带入终端标签页,最后点击运行按钮,终端会执行 python3 text_to_speech.py
。
这里我不得不夸赞一下 Trae,对我安排的这个任务执行得非常专业。不仅仅是文件结构清晰、变量命名规范、还有注释规范等。
由于 Trae 还给出了思考过程,所以即使我对 python 几乎不太懂,只学过其他 Java 等编程语言。也能很快将 python 依赖的 requirements.txt 类比为 java 的 maven 配置或 node 的 npm 配置。然后运行 python 主程序
可类比为 java xxx
或者 node xxx
。
这可能得益于 Trae 默认启用的 Claude 3.5 Sonnet 模型的强悍推理能力。
2.2 继续完善
理论上添加 py 文件和拉取依赖后直接运行这个小程序就完成了,但是在这个过程中我的机器还是遇到了不少错误的,这里借助 builder 模式和 Chat 模式可以一一修复。
2.2.1 修复 playsound 包安装失败的问题
目前 requirements.txt 只要求 gTTs 和 playsound 库,但是 playsound 库一直下载不下来。这里可以一键将终端报错内容添加到聊天框中并询问如何解决。
Trae 给出了将 playsound 替换为 pygame 的方案,并给出了我所有要修改的地方。
2.2.2 更换 mirror,拉取所有依赖库
我等了 2 分钟,肉眼看到拉取依赖库几十 k 每秒的速度于是手动 ctrl + c 终止了 pip 语句。并向 Trae 描述太慢受不了并要求更换 mirror 源,Trae 立马明白了我的意思。
2.2.3 修复代码语法错误
Trae 给出的代码很具有参考价值,但是目前有一个明显的语法错误。在运行时直接终端报错,直接讲报错的描述甩给 Trae 后完美得到解决。
2.2.4 添加网络请求重试机制
毕竟国外大模型水土不服,默认国内访问 gTTS 服务总超时,终端报错信息发给 Trae,给我一个重视机制。但我知道即使重试多少次都没用,果断拒绝了。
2.2.5 语音服务改用使用百度 aip
我向 Trae 明确谷歌 gTTS 用不了,但是给我一些提示,于是我继续追问有没有免费服务。
Trae 给我一键修改了对应文件,我在审查后点击接受。
由于我接受后没看说明,未安装 baidu-aip 依赖直接点了运行,遇到了ModuleNotFoundError: No module named 'aip'
错误,甩给 Trae,Trae 立马找出了原因,并结合历史对话,建议我使用了 ustc 中科大源完成模块安装。
于是乎我开始自己手动去 ai.baidu.com/ 百度 ai 平台去注册账号和新建应用并填充认证信息。
填充后运行又提示 access_token 认证失败,于是一键将终端报错信息提供给 Trae 去解决。
我只要轻松点击全部接受代码即可:
# 创建百度云客户端
...
# 获取访问令牌
auth_result = client._auth()
if isinstance(auth_result, dict) and 'error' in auth_result:
print(f"获取访问令牌失败: {auth_result['error_description']}")
return False
# 设置发音人
...
和 Trae 对话的过程中,我顺便将第三方库升级到了最新版本。
3. 成果演示
3.1 效果演示
我们尝试将
要加强斗争精神和斗争本领养成,着力增强防风险、迎挑战、抗打压能力。
这句话转成语音。gif 演示效果如下:
果然成功生成了 speech_zh_要加强斗争精神和斗争.mp3
【在线试听】。可能我 speaker 发音人参数用的是基础版,免费额度的百度语音合成给我感觉一般,目前我会更喜欢 edge-tts。
3.2 源码留存
requirements.txt
baidu-aip==4.16.13
pygame==2.5.2
text_to_speech.py
from aip import AipSpeech
import pygame
# 百度云API配置
APP_ID = '***请自行补充***'
API_KEY = '***请自行补充***'
SECRET_KEY = '***请自行补充***'
def text_to_speech(text, language='zh', output_file='output.mp3'):
"""
将文本转换为语音并保存为MP3文件
:param text: 要转换的文本
:param language: 语言代码 (默认为中文)
:param output_file: 输出文件名 (默认为 output.mp3)
"""
try:
# 创建百度云客户端
client = AipSpeech(APP_ID, API_KEY, SECRET_KEY)
# 获取访问令牌
auth_result = client._auth()
if isinstance(auth_result, dict) and 'error' in auth_result:
print(f"获取访问令牌失败: {auth_result['error_description']}")
return False
# 设置发音人
speaker = 0 # 0-女声,1-男声,3-度逍遥,4-度丫丫
if language == 'en':
speaker = 3 # 英文使用度逍遥音色
# 调用百度云API进行语音合成
result = client.synthesis(text, language, 1, {
'vol': 5, # 音量,范围0-15
'per': speaker, # 发音人
'spd': 5, # 语速,范围0-15
'pit': 5, # 音调,范围0-15
})
# 如果成功转换,则保存文件
if not isinstance(result, dict):
with open(output_file, 'wb') as f:
f.write(result)
print(f"音频已保存为: {output_file}")
# 初始化pygame音频系统
pygame.mixer.init()
# 播放音频
pygame.mixer.music.load(output_file)
pygame.mixer.music.play()
# 等待音频播放完成
while pygame.mixer.music.get_busy():
pygame.time.Clock().tick(10)
return True
else:
print(f"转换失败: {result}")
return False
except Exception as e:
print(f"转换过程中出现错误: {str(e)}")
return False
def main():
# 支持的语言列表
languages = {
'1': ('zh', '中文'),
'2': ('en', '英语')
}
print("欢迎使用文本转语音程序!")
print("\n支持的语言:")
for key, (code, name) in languages.items():
print(f"{key}. {name}")
# 获取用户输入
lang_choice = input("\n请选择语言编号 (默认为中文): ").strip() or '1'
if lang_choice not in languages:
print("无效的语言选择,使用默认语言(中文)")
lang_choice = '1'
text = input("\n请输入要转换的文本: ").strip()
if not text:
print("错误:文本不能为空")
return
# 获取选择的语言代码
language_code = languages[lang_choice][0]
# 生成输出文件名
output_file = f"speech_{language_code}_{text[:10]}.mp3"
# 执行转换
success = text_to_speech(text, language_code, output_file)
if success:
print("\n转换完成!")
else:
print("\n转换失败,请重试。")
if __name__ == '__main__':
main()
4. 总结
本次借助 Trae 这款聪明的 IDE 工具,完全是从 0 完成了一款 python 小工具。本人没有手写一行代码,纯粹是与 AI 助手对话,获得了代码解释、代码注释和错误修复等帮助。
作为一个小白,例如代码片段生成和多模态输入功能可能暂时也用不上。但这恰恰说明 Trae 既适合小白又适合老手。为了充分了解 Trae 的能力,建议参考官方 Trae - 文档。