由于openAI自动生成文本,想用它来提升英语口语能力。于是自己写了基于web的对话,但是这样要坐着输入输出,时间长就腰酸背痛。
想着能不能通过手机躺着练习口语,于是调研了微信、钉钉开发者文档,发现微信不支持;钉钉需要在小程序开发录音功能,比较麻烦。(后发现可以实现,等排期实现)
后面发现飞书支持获取录音、录音下载开发者功能,于是才有了这个项目。
支持微信、钉钉、飞书实现英语锻炼
功能对标
飞书 | 微信 | 钉钉 | |
---|---|---|---|
回复消息,建立上下文 | 支持 | 没有上下文标记 | 没有上下文标记 |
表情回调事件 | 支持 | 不支持(没有表情) | 不支持 |
访问:https://platform.openai.com/account/api-keys
点击create new secret key
,就可以获取到key。
https://cloud.tencent.com/document/product/1093/35686#.E5.85.8D.E8.B4.B9.E9.A2.9D.E5.BA.A6
腾讯语音识别文字功能每月有免费额度(每月5000次)
访问腾讯ASR网站,开通ASR功能(主要是一句话识别)。
接着访问API密钥管理,创建一个密钥。
访问凭据,点击创建凭据->API 密钥,获得API密钥。
需要信用卡,新注册信用卡可以免费使用1年微软语音服务。
如果没有这个,建议使用sougou或者youdao语音的引擎。
访问微软语音服务,创建订阅。
在密钥和终结点中获取密钥1和地区
修改core\config.py
文件,填上对应的密钥。
APP_ID = "" #飞书应用的App ID
APP_SECRET = "" # 飞书应用的App Secret
ENCRYPT_KEY = "" #飞书应用事件订阅的Encrypt Key
VERIFICATION_TOKEN = "" #飞书应用事件订阅的Verification Token
LARK_HOST = "https://open.feishu.cn"
TencentSecretId = "" #腾讯SecretId,用来语音转文字
TencentSecretKey = "" #腾讯SecretKey,用来语音转文字
AiKey = "sk-" #openai的key
azure_speech_key = "" #微软的key
azure_service_region = "eastus" #微软资源的地区
text_and_audio = 0 #默认只回复英文语音,设置为1同时回复英语语音和英语文本。当配置为0的时候,可以采用官方的语音翻译功能对回复录音进行翻译,用于练听力。
random_word_num = 10 #随机抽取单词的个数
syntactic_correction = 0 #英语语法修正,默认不开启。修改为1代表开启语法批改。
audio_mode = "youdao" #有三种语音模式,分别是:`youdao`、`sougou`、`azure`
sougou_speaker = 6 #搜狗语音有6种语音,可以选择自己喜欢的,参考https://fanyi.sogou.com/reventondc/synthesis?text=hello%20i%20am%20xiaoming&speaker=6
azure_speaker = "en-US-AriaNeural" #点击语音库,选择自己喜欢的声音。https://speech.microsoft.com/portal
可以不配置腾讯的key,用飞书官方自带的语音转文字功能。
apt install -y ffmpeg
cd /opt
git clone https://github.com/yingshang/lanuage-talk-listen
cd feishu-talk && pip3 install -r requirements.txt
python3 app.py
cd /opt
git clone https://github.com/yingshang/lanuage-talk-listen
cd lanuage-talk-listen
docker build -t lanuage-talk-listen .
docker run -itd -p 443:443 -v /opt/file:/opt/lanuage-talk-listen/file --restart=always lanuage-talk-listen
-
语法批改
-
Azure SSML创建自定义音频
-
话题模式
-
余额查询
-
帮助列表
-
查询模式
-
使用官方的语音识别(就可以不用同时发送语音和文字)
-
词汇题生成
-
AI原文
-
录入单词
-
要背的单词随机抽取生成阅读文章(需要上面录入单词)
-
英文句子播放
-
表情替代文字功能
-
单词分析(词根词缀助记)
-
角色扮演
-
听力场景生成
-
听力阅读输出问题和选项
-
口语评分(azure口语评测、腾讯智聆评测)
-
单词听力模式(返回音频,输入英文单词)
-
拼写模式(返回中文,输入英文)
-
添加语种(粤语、德语、法语等)
-
添加企业微信功能
-
添加钉钉功能
https://open.dingtalk.com/document/orgapp/download-the-file-content-of-the-robot-receiving-message
-
excel文档导入和模板下载(用于托福独立口语题目导入)
-
托福独立口语(任务1随机出题、任务1评分、任务2随机出题、任务2评分、任务3随机出题、任务3评分、任务4随机出题、任务4评分)
- 百度,该接口不能播放对话,因为只有一种声音。声音还可以,不刺耳。(免费)
- 搜狗,可以生成文章和对话的播放,声音一般般。(免费)
-
有道,接口失效 - 谷歌云,可以生成文章和对话的播放,声音可以。(绑信用卡免费,有免费额度限度)
- 微软云,可以生成文章和对话的播放,声音可以。(绑信用卡免费,有免费额度限度)
- 腾讯(每个月有免费额度)
- 谷歌云
- 腾讯
- 微软云
- 谷歌云
- 2023.4.14:完成基本框架编写
- 2023.4.18:完成帮助列表、余额查询、清除会话状态、使用官方的语音识别、中文交流、英文句子播放、录入单词、词汇生成阅读、Azure SSML创建自定义音频
- 2023.4.20:修复azure语音转换不了文字。新增英语对话功能、语法批改、AI原文、听力场景生成功能。优化代码。
- 2023.4.21:新增表情替代文字功能
- 2023.4.24:新增听力阅读输出问题和选项功能
- 2023.4.27:删除一些没用功能。重写上下文对话逻辑。添加sqlite保存数据功能、添加更多表情场景(英语播放、语法批改、口语评测)。
- 2023.5.4:调研钉钉和微信开发者文档(确定其支持功能)。重构目录,把飞书代码移到对应目录。编写对应的文档。
- 2023.5.5:新增文件回复功能(将音频文件变成文件类型,将音频文件打开后台播放,用于学校和讲座场景)。更新下托福听力场景。
- 2023.5.9:完善帮助列表。新增托福口语TASK1场景、指定听力场景生成和听力场景总览功能。
- 2023.5.11:新增托福口语TASK1任务答案生成功能和优化评分prompt。
- 2023.5.12:修复sougou语音生成bug,新增sougou语音引擎对话;删除有道语音引擎(失效);新增谷歌云语音服务引擎(文本转语音、语音识别文字);新增azure 文本转语音额度用完告警。
- 2023.7.3:新增指定讲座和讲座对话场景,优化openai和azure的key列表。