昨天尝试着做了一个稍微负责点的程序,想用chatGPT来写一个录音转写并同步翻译的小程序。虽然这个功能已经有很多现成的解决方案了,而且效果也都不错,比如讯飞听见的同传。不过我总觉得用chatGPT的API来进行英翻中,应该会有更好的效果,更重要的,会更便宜。

作为一个合格的AI 助手,我的工作就是提供人工,AI 来负责智能部分,我们一起来实现新时代的人工智能。

首先,是向chatGPT(运行的是GPT-4模型)提出我的需求。前期需求尽量不要太复杂,或者不要直接一步到位实现所有功能:为了便于调试,我让它先做一个录音存成文件,然后录音结束后再上传转写,再翻译的过程。先回避了同步上传翻译,在屏幕上同步显示字幕等比较复杂但是非核心功能的部分。

chatGPT很好的理解了我的需求,并给出了四个文件,以record_audio.py为例



import pyaudio
import wave

def record_audio(filename, seconds=5, chunk=1024, format=pyaudio.paInt16, channels=1, rate=44100):
    p = pyaudio.PyAudio()

    stream = p.open(format=format,
                    channels=channels,
                    rate=rate,
                    input=True,
                    frames_per_buffer=chunk)

    print("开始录音...")

    frames = []

    for _ in range(0, int(rate / chunk * seconds)):
        data = stream.read(chunk)
        frames.append(data)

    print("录音结束...")

    stream.stop_stream()
    stream.close()
    p.terminate()

    wf = wave.open(filename, 'wb')
    wf.setnchannels(channels)
    wf.setsampwidth(p.get_sample_size(format))
    wf.setframerate(rate)
    wf.writeframes(b''.join(frames))
    wf.close()

代码的完成度非常高,留给我的其实也就装下库,然后测试一下。这里就是一个合格的AI 驾驶员的必备素养之一:首先你要知道怎么安装python的这些库,怎么样配置一个合格的测试环境,出错的内容如果你能看得懂可以尝试自己先改掉简单,不要直接复制丢回给AI,否则就会遇到我这种情况:

孱弱的人类躯壳无法长时间容纳chatGPT的降临,3小时25次问答,很快就迎来了长时间的技能CD。

这个demo其实需要调的错误不多,基本功能很快就完成了,我又让AI 加了一个程序运行后倒数三秒开始录音,录音满1分钟自动停止。后面可以糊一个简陋的界面来手动控制开始和结束。

想做实时翻译,结果试了几次都失败了。主要问题在于实时翻译设计到多个线程,一边录音一遍缓存,同时上传缓存的文件并转录翻译。我对这块一窍不通,没有办法为AI 提供任何帮助,而一旦脱离了人prompt的引导(咒语吟唱),AI很快就会陷入混乱,它能够有效管理的对话上下文其实非常短,写着写着就忘了前面写过什么了,经常会引用一个它没写过的函数和功能。人类驾驶员的作用就是引导它不要暴走。

项目本身没啥可说的,体验还是挺有意思的:

1、写一个小工具的门槛被降低了非常多,在以前这种程序,像我这种没有开发经验的人,至少要一个星期才能写完,还要查大量的资料。现在也就半天不到的时间。

2、不要指望一个外行加AI就能取代资深的专业人士,AI的上限是使用者的上限,主要是我拖后腿了。从技术选型到代码调试,错基本都是我犯的。

3、这种方法仅限于完成一些小工具小想法,AI对信息的管理能力很有限,写不出大型项目。但是实现项目里面的具体功能和函数还是可以有效提高效率的。

项目我扔到github上了https://github.com/justonehe/real_time_translate,不得不说,AI 写起readme来才是一把好手。它甚至从我前面失败的尝试里面推测出了我后期的改进想法。

所以,好好锻炼身体,争取成为一个合格的AI驾驶员吧。