前面已经简单介绍过在Jetson AI Lab所提供的NanoLLM开发平台上的API基本内容,使用这些API可以非常轻松地开发并整合比较复杂的应用,现在就用一个比较具有代表性的Llamaspeak对话机器人项目,做个简答的比较。
这个项目的工作原理如下图:
这个Llamaspeak项目在2023年提出第一个版本时,是以NVIDIA的RIVA语音技术结合Text-Generation-Webui界面与LLM大语言模型而成,整个安装的过程是相当复杂的,主要包括以下步骤:
$ cd /path/to/your/jetson-containers/data
$ openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -sha256 -days 365 -nodes -subj '/CN=localhost'
$ jetson-containers run --workdir=/opt/llamaspeak \
--env SSL_CERT=/data/cert.pem \
--env SSL_KEY=/data/key.pem \
$(./autotag llamaspeak) \
python3 chat.py --verbose
现在就可以打开浏览器,输入指定位置与端口号,开始以用户端(如笔记本)的麦克风与这个应用开始交流。
事实上有经验的工程师,可能都要花一整天时间,才有机会完成整个Llamaspeak系统的搭建,因爲过程中需要独立安装的东西太多,并且模型之间的交互关系较爲复杂,一般初学者要安装成功的机会并不高。
现在使用NanoLLM开发环境重新搭建Llamaspeak应用,就变得非常简单,而且在旧版只支持语言对话的功能之上,还增加了对多模态大语言模型的支持,这样的使用性就变得非常高了。现在只要执行以下指令,就能实现Llamaspeak的功能,不过在执行之前,请记得先到huggingface.co去申请一个TOKEN:
$ jetson-containers run --env HUGGINGFACE_TOKEN=$HUGGINGFACE_TOKEN \
--name llamaspeak --workdir /opt/NanoLLM $(autotag nano_llm)
# 进入容器后
$ python3 -m nano_llm.agents.web_chat --api=mlc \
--model meta-llama/Meta-Llama-3-8B-Instruct --asr=riva --tts=piper
这里使用Meta-Llama-3-8B-Instruct模型,执行纯语言的对话。如果系统里面没有这个模型,就会从HuggingFace去下载,如下图所示:
最后停留在下面画面:
现在我们在浏览器里输入“https://127.0.0.1:8050”,就会进入操作界面:
这里我们尝试用文字输入问题,虽然llama-3-8b-instruct模型能支持中文,但是在ASR与TTS两端均未提供中文支持的能力,因此文字部分虽然可以用中文回答,但是语音输出部分就没办法了。
如果想要支持中文的语音输入识别与输出的话,就需要修改以下两个地方:
修改完这两处之后,重新执行以下指令:
$ python3 -m nano_llm.agents.web_chat --api=mlc \
--model meta-llama/Meta-Llama-3-8B-Instruct --asr=riva --tts=piper
现在试试从麦克风用中文与Llamaspeak交谈,是否能如预期地识别出我们所说的话,并且以用中文语音回答呢?如果一切顺利,你现在就能开始有一个博学多闻的对手,可以跟你天南地北聊天了。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。