phybrain / lanuage-talk-listen

用飞书、微信、钉钉+chatgpt来锻炼英语口语和听力能力,利用openai的生成文本功能生成具体英语对话场景

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

英文口语听力锻炼(支持飞书、钉钉、微信)

背景

由于openAI自动生成文本,想用它来提升英语口语能力。于是自己写了基于web的对话,但是这样要坐着输入输出,时间长就腰酸背痛。

想着能不能通过手机躺着练习口语,于是调研了微信、钉钉开发者文档,发现微信不支持;钉钉需要在小程序开发录音功能,比较麻烦。(后发现可以实现,等排期实现)

后面发现飞书支持获取录音、录音下载开发者功能,于是才有了这个项目。

客户端

支持微信、钉钉、飞书实现英语锻炼

功能对标

飞书 微信 钉钉
回复消息,建立上下文 支持 没有上下文标记 没有上下文标记
表情回调事件 支持 不支持(没有表情) 不支持

安装配置

创建openai的key

访问:https://platform.openai.com/account/api-keys

点击create new secret key,就可以获取到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密钥管理,创建一个密钥。

谷歌云key

访问凭据,点击创建凭据->API 密钥,获得API密钥。

image-20230512121459523

微软云key

需要信用卡,新注册信用卡可以免费使用1年微软语音服务。

如果没有这个,建议使用sougou或者youdao语音的引擎。

访问微软语音服务,创建订阅。

密钥和终结点中获取密钥1和地区

image-20230426143341888

配置文件

修改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

docker部署

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

todo

语音服务

文本转语音

  • 百度,该接口不能播放对话,因为只有一种声音。声音还可以,不刺耳。(免费)
  • 搜狗,可以生成文章和对话的播放,声音一般般。(免费)
  • 有道,接口失效
  • 谷歌云,可以生成文章和对话的播放,声音可以。(绑信用卡免费,有免费额度限度)
  • 微软云,可以生成文章和对话的播放,声音可以。(绑信用卡免费,有免费额度限度)

语音转文本

  • 腾讯(每个月有免费额度)
  • 谷歌云

口音评分

  • 腾讯
  • 微软云
  • 谷歌云

更新日志

  • 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 文本转语音额度用完告警。

联系方式

20230428-164800

About

用飞书、微信、钉钉+chatgpt来锻炼英语口语和听力能力,利用openai的生成文本功能生成具体英语对话场景

License:Apache License 2.0


Languages

Language:Python 99.1%Language:Dockerfile 0.7%Language:Shell 0.2%