# yuliao **Repository Path**: renyajun1990/yuliao ## Basic Information - **Project Name**: yuliao - **Description**: 使用realtime api进行语音聊天,没有语音转文字,文字转语言的环节。 - **Primary Language**: Python - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-01-15 - **Last Updated**: 2025-01-16 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## 项目介绍 本项目是利用AzureOpenai或Openai的RealtimeApi的接口,实现的一个AI语音会话的网页App。 ## 项目特色 之前也有语音会话的应用,但是基本逻辑是:语音转文字,文字请求AI接口生成文字结果,文字结果转语音进行播放。而Openai最新的RealtimeAPI接口,可以直接以语音的方式进行输入,以语音的方式进行输出。也就是说减少了「语音转文字」和「文字转语音」的环节,提升了反应速度。 ## 演示视频 ## 安装步骤 1、Clone本项目:git clone https://gitee.com/renyajun1990/yuliao.git 2、安装项目依赖:pip install -r requirements.txt 3、将key_example.ini文件,重命名为key.ini,并根据文件内的提示,输入AI的供应商信息,目前只支持AzureOpenai。 4、因为生成的网页App,需要获取麦克风的权限,所以URL地址需要是HTTPS协议。但是在测试环境,可以生成自签名的HTTPS证书。 ``` # 生成私钥 openssl genpkey -algorithm RSA -out key.pem # 生成自签名证书 openssl req -new -x509 -key key.pem -out cert.pem -days 365 ``` ## 使用步骤 1、配置AI角色信息,打开airole.json文件进行配置,其中label仅仅是一个名称用在前端页面进行选择。value是这个AI的身份信息,也就是给AI的身份定位,API接口中的instructions值,或system值。 2、进入项目目录:cd yuliao 3、运行项目:python3 app.py 4、打开提示的地址,因为是自签名的证书,所以会有安全提示,选择继续打开。 5、浏览器会提示授予麦克风的权限,点击「允许」并继续。 6、在下拉列表中选择一个AI身份,也可以自己手动一个针对AI的身份,点击「更新AI的身份定位」即可。同一浏览器,如果自定义了AI的身份,下次打开是可以记住该信息的。 7、按住「按住说话」按钮,就可以开始说话了,松开按钮会进行发送,整体体验和在微信中发送语音信息类似。 8、更多使用详情,可以参考演示视频环节。 ## 不足之处 1、目前realtime api提供的音色还很少,并且带有比较浓重的西方口音。不如微软自家的一些TTS音色自然。 2、虽然在调用realtime环节,开发者不需要使用语音转文本。但是在API接口内部还是有这个过程,使用的模型是whisper-1,这个模型针对中文的转录效果也不太好。 ## 下一步 这个项目模拟了微信中发送语音消息,一来一回的模式。但是能否像打语音电话一样互动呢?答案是可以的,使用的是WebRTC的技术方案。随后我也会做一个这样的DEMO。 ## 接下来的代办 - 同时支持AzureOpenai和Openai - ~~前端当AI在播放内容时,可以通过按钮终止播放。~~ - 录入的内容很长时,失败的问题。 - 检查第三方JS资源加载有没有成功。