最近好多AI博主都在推荐通义灵码,我就下载下来体验了一下,而且目前通义灵码暂时不收费,而且还有一个推荐奖励的活动,活动内容如下:
邀请好友达到一定人数,有一些奖励。
我目前看到微软的Azure云有个语音转文本的功能,而且订阅账号每个月可以白嫖5小时的免费额度,必须得是订阅用户才有,订阅用户需要Azure的账号绑定了信用卡才行
我想实现一个上传语音,转换成文本的功能,这次我将这个需求发给通义灵码和Claude3,看下哪个能实现我的功能。我的提示词如下:
如何使用微软的azure的语音服务实现将一个wav文件识别出里面的文字,用python语言实现,图形化界面,程序运行后,先让我选择wav文件,然后再将这个wav文件进行识别,识别出来的文字全部都保存到c:\temp下,按照时间戳来命名文本文件,请你给我代码。
直接给出结论:
通义灵码实现不了,Claude3也不能一次实现,但是经过几次修改,Claude3最终给出了准确的代码,过程有图有真相,不黑通义灵码也不吹Claude3,可能这个任务有点麻烦。
先看通义灵码的过程
再来看下Claude3(Opus)的过程;
将报错信息丢给Claude3,让它修改,每次修改它都给出完整代码,通义灵码每次只给出部分代码,对于我这种比较懒的,只想复制黏贴的外行来说,感觉Claude3更友好
经过7-8轮反复调试,终于Claude3给出了正确的代码,运行成功。
下面我将Claude3给出的代码分享出来
import os
import tkinter as tk
from tkinter import filedialog, ttk
import azure.cognitiveservices.speech as speechsdk
from datetime import datetime
# 配置Azure语音服务的密钥和区域
speech_key = "key"
service_region = "service_region"
def recognize_speech():
# 获取选择的WAV文件路径
wav_file = filedialog.askopenfilename(filetypes=[("WAV Files", "*.wav")])
if wav_file:
# 更新状态标签
status_label.config(text="正在识别...")
# 创建语音配置对象,并设置语言为中文
speech_config = speechsdk.SpeechConfig(subscription=speech_key, region=service_region)
speech_config.speech_recognition_language = "zh-CN"
# 创建音频配置对象
audio_config = speechsdk.audio.AudioConfig(filename=wav_file)
# 创建语音识别器对象
speech_recognizer = speechsdk.SpeechRecognizer(speech_config=speech_config, audio_config=audio_config)
# 定义识别结果的回调函数
recognized_text = []
def handle_final_result(evt):
recognized_text.append(evt.result.text)
progress_bar.step(10) # 每次识别结果更新进度条
# 连接识别结果的事件处理程序
speech_recognizer.recognized.connect(handle_final_result)
# 定义识别状态的标志变量
is_recognizing = True
# 定义识别结束的回调函数
def handle_session_stopped(evt):
nonlocal is_recognizing
is_recognizing = False
# 连接识别结束的事件处理程序
speech_recognizer.session_stopped.connect(handle_session_stopped)
# 执行连续识别
speech_recognizer.start_continuous_recognition()
# 等待连续识别完成
while is_recognizing:
window.update()
# 停止连续识别
speech_recognizer.stop_continuous_recognition()
# 获取当前时间戳
timestamp = datetime.now().strftime("%Y%m%d_%H%M%S")
# 构建保存文件的路径
save_path = os.path.join("C:\\temp", f"recognized_text_{timestamp}.txt")
# 将识别结果保存到文件
with open(save_path, "w", encoding="utf-8") as file:
file.write("\n".join(recognized_text))
# 更新状态标签
status_label.config(text="识别完成,结果已保存到文件: " + save_path)
# 重置进度条
progress_bar["value"] = 0
# 创建图形化界面
window = tk.Tk()
window.title("语音识别")
# 创建选择文件按钮
select_button = tk.Button(window, text="选择WAV文件", command=recognize_speech)
select_button.pack(pady=10)
# 创建状态标签
status_label = tk.Label(window, text="请选择要识别的WAV文件")
status_label.pack()
# 创建进度条
progress_bar = ttk.Progressbar(window, length=200, mode="determinate")
progress_bar.pack(pady=10)
# 运行图形化界面
window.mainloop()
其中,Service_region和key值需要到azure中去获取,先选语音服务
python在Visual stuidio中运行效果如下:
识别出来的结果就在c:\temp下
最后,还是建议各位如果有需求可以安装一下通义灵码,它用来简单的修改一下 bug,代码注释,实现简单的功能,目前还是够用了,但是如果稍微复杂一点的需求,这个时候就要权衡一下,个人建议还是用Claude3更能节省时间,目前测试下来,写代码还是Claude3(Opus)最强,GPT4也没它强,一家之言,个人愚见,仅供参考。
通义灵码安装方法如下:
免费扫码注册: