FastGPT
FastGPT copied to clipboard
用 FunASR 实时语音转录替代 Whisper 离线转录
例行检查
- [x] 我已确认目前没有类似 features
- [x] 我已确认我已升级到最新版本
- [x] 我已完整查看过项目 README,已确定现有版本无法满足需求
- [x] 我理解并愿意跟进此 features,协助测试和提供反馈
- [x] 我理解并认可上述内容,并理解项目维护者精力有限,不遵循规则的 features 可能会被无视或直接关闭
功能描述
当前的系统使用 Whisper 进行离线语音转录,这种方式存在中文效果一般,延迟大的问题。为了保证语音转录的实时性,提高用户体验,建议将现有的 Whisper 离线转录替换为 FunASR 实时语音转录。FunASR 提供了高效的实时语音转录功能,能够在保证准确率的同时,大幅度减少延迟。
应用场景
-
会议转录: 在在线会议和网络研讨会中,实时转录能够让与会者及时看到讲话内容,便于记录和后续讨论。
-
实时客服: 实时转录客户的对话,提高客户体验。
相关示例
为了便于集成和部署,可以使用已经打包成容器的 FunASR 实时语音转录 API,参见 https://harryai.cc/post/realtime-funasr/
这是一个为 harryliu888/funasr-online-server:latest 编写的客户端脚本,实时获取麦克风输入并转录:
import pyaudio
import websocket
import json
import threading
# 配置参数
config = {
"chunk_size": [5, 10, 5],
"wav_name": "h5",
"is_speaking": True,
"wav_format": "pcm",
"chunk_interval": 10,
"itn": True,
"mode": "2pass",
"hotwords": "",
}
# WebSocket URL
ws_url = "ws://10.223.48.160:10095/" # 替换为你的服务端URL
# WebSocket连接
def on_message(ws, message):
print(f"Received: {message}")
def on_error(ws, error):
print(f"Error: {error}")
def on_close(ws, w, e):
print("Connection closed")
def on_open(ws):
def run(*args):
# 发送配置参数
ws.send(json.dumps(config))
# 初始化pyaudio
p = pyaudio.PyAudio()
stream = p.open(
format=pyaudio.paInt16,
channels=1,
rate=8000,
input=True,
frames_per_buffer=1024,
)
print("Recording...")
try:
while True:
data = stream.read(1024)
ws.send(data, opcode=websocket.ABNF.OPCODE_BINARY)
except KeyboardInterrupt:
pass
# 发送结束标志
end_signal = {"is_speaking": False}
ws.send(json.dumps(end_signal))
stream.stop_stream()
stream.close()
p.terminate()
ws.close()
threading.Thread(target=run).start()
if __name__ == "__main__":
websocket.enableTrace(False)
ws = websocket.WebSocketApp(
ws_url,
on_open=on_open,
on_message=on_message,
on_error=on_error,
on_close=on_close,
)
ws.run_forever()
这个docker镜像能离线部署和运行吗?
这个docker镜像能离线部署和运行吗?
可以。我希望修改fastgpt,适配funasr的websocket接口,在此寻求社区的帮助
这个docker镜像能离线部署和运行吗?
可以。我希望修改fastgpt,适配funasr的websocket接口,在此寻求社区的帮助
我pull你的镜像,跑了一下,确实很棒,fastgpt如果能集成适配接入你的websocket asr接口,语音输入体验一下子就高层次了,和智能就沾边了。 另外,问一下,你这镜像里的funasr是CPU版本的还是GPU版本的?
这个docker镜像能离线部署和运行吗?
可以。我希望修改fastgpt,适配funasr的websocket接口,在此寻求社区的帮助
直接修改成whisper 接口不就好了。线上都已经全部替换 funasr 了,拉阿里的代码,fastapi 改改完事~
直接修改成whisper 接口不就好了。线上都已经全部替换 funasr 了,拉阿里的代码,fastapi 改改完事~
Whisper 的 API 不是实时流式识别,在语音输入结束之前,用户看不到自己说了什么;这与 funasr WebSocket 的实时识别还是有很大不同的。
WebSocketApp
不一定好,实时转,发现一个字错了,会打断讲话思路
流式传输在某些场景下确实有优势,可以考虑提供为一个可选功能
流式传输在某些场景下确实有优势,可以考虑提供为一个可选功能
大佬,实现了吗?
流式传输在某些场景下确实有优势,可以考虑提供为一个可选功能
大佬,实现了吗?
没有,我目前觉得openai api的效果在识别足够准确时也不错,不搞流式了
这个在转写的过程中会自动纠错吗? 类似讯飞的实时转写接口那样
测试了下应该是不能
这个在转写的过程中会自动纠错吗? 类似讯飞的实时转写接口那样
测试了下应该不能
流式传输在某些场景下确实有优势,可以考虑提供为一个可选功能
大佬,实现了吗?
没有,我目前觉得openai api的效果在识别足够准确时也不错,不搞流式了
目前fastgpt的在pc的效果与使用习惯不错。 但是H5在手机上打开 语音体验感不太好,手机上能否支持流式的?