试用ChatGPT的copilot编写一个程序从笔记本电脑获取语音输入和图像输入并调用开源大模型进行解析
借助copilot写代码和自己手写代码的开发过程是一样的。
首先要有明确的开发需求,开发需求越详细,copilot写出的代码才能越符合我们的预期。
其次,有了明确的需求,最好先做下需求拆解,特别是对于比较复杂的应用,拆解之后按照一定的顺序逐个功能点去实现,这样调测起来也比较方便。
比如,先实现从电脑麦克风获取语音输入并保存成本地语音文件;然后将语音文件转换成文本,接着把文本拿去给大语言模型做推理,然后把推理的结果使用tts服务转换成语音播放出来;
最后交由copilot不断迭代去实现我们想要的功能,每实现一个功能点要先验证一下,如果有问题,或者报错,可以直接发给copilot去优化。
copilot自己选的语音识别库,tts库,大语言模型可能并不能直接使用,这时就需要我们自己去调整。
这里语音识别库使用的是vosk-model-small-cn-0.22,tts库使用的是pyttsx3,大语言模型试用的是moonshot-v1-8k。
由于moonshot大语言模型只能解析图片文件中的文本,对于不含文本的图片会报错,所以这里图像解析试用的是多模态大模型LLAVA。
参考https://platform.moonshot.cn/docs/api/chat
调用moonshot大语言模型对文本进行推理
参考https://ollama.com/library/llava
在本地安装Ollama
本地部署之后会启动一个服务,端口号是11434,可以通过api来调用;
最后做出来的效果如下:
总结一下,copilot输出的代码基本能实现想要的功能,有些细节需要手工微调一下。
程序代码本身还可以继续优化,比如当前使用的语音识别库存在语音识别不准确的问题,特别是说话时包含中英文的,可以换用其他更有效的库,语音合成库也可以换成chattts等其他开源库,当前使用的大模型api调用存在次数限制,连续调用3次就报错,也可以换成其他的,或者本地部署一个,本地进行图片解析的LLAVA库运行非常耗时,这个也可以更换,等等。