HaujetZhao / CapsWriter-Offline

CapsWriter 的离线版,一个好用的 PC 端的语音输入工具
2.43k stars 190 forks source link

希望支持长语音自动上屏 #91

Open winter60 opened 4 months ago

winter60 commented 4 months ago

有的时候想说,一长段的文字,一句按一次的这样上屏,好像很影响思路。建议在长按的时候,如果说话若有停顿,可以把停顿之前的内容先上屏。就像讯飞输入法一样。

IAliceBobI commented 4 months ago

@winter60 这个提议不错,我也想用这个功能来替代讯飞输入法,毕竟他经过网络,还有算力的问题,延迟比较大.

QQQOrange commented 4 months ago

非常好的一个功能,期待早日实现

H1DDENADM1N commented 4 months ago

好想要这个功能啊。 可是,目前的状态是停顿的时候会识别出一些空耳不知所云的文字,不知道怎么区分什么时段是真的没有说话。 如果采用每隔几秒强制输出上屏,中断的时候又会影响识别效果。我注意到苹果手机自带输入法的语音输入是可以根据后文纠正前文的。不知道有没有可能在Windows端这个项目实现。或者是有没有把手机端的语音输入实时同步到电脑端输入的项目。

QQQOrange commented 4 months ago

好想要这个功能啊。 可是,目前的状态是停顿的时候会识别出一些空耳不知所云的文字,不知道怎么区分什么时段是真的没有说话。 如果采用每隔几秒强制输出上屏,中断的时候又会影响识别效果。我注意到苹果手机自带输入法的语音输入是可以根据后文纠正前文的。不知道有没有可能在Windows端这个项目实现。或者是有没有把手机端的语音输入实时同步到电脑端输入的项目。

老哥,你的那个在弹出的窗口上好像用不了,例如有个软件叫 listary,就不能够在 listary 的窗口上面用 https://www.listary.com/ 老哥可以下载的试试看看

QQQOrange commented 4 months ago

老哥,你的那个在弹出的窗口上好像用不了,例如有个软件叫 listary,就不能够在 listary 的窗口上面用

我遇到过类似的问题,可能是你的listary使用的管理员权限运行,而CapsWriter使用的用户权限。运行用户权限的程序无法控制管理员权限的程序。请尝试:用管理员权限运行CapsWriter。另,咱们还是找一个issues聊天吧,别整的到处都是聊天记录。

有道理,老哥,你那边能办能有办法把issue给整上吗,我直接在issue里提

H1DDENADM1N commented 4 months ago

好想要这个功能啊。 可是,目前的状态是停顿的时候会识别出一些空耳不知所云的文字,不知道怎么区分什么时段是真的没有说话。 如果采用每隔几秒强制输出上屏,中断的时候又会影响识别效果。我注意到苹果手机自带输入法的语音输入是可以根据后文纠正前文的。不知道有没有可能在Windows端这个项目实现。或者是有没有把手机端的语音输入实时同步到电脑端输入的项目。

实验性功能分支:在长按模式,每 * 秒自动输出

试着实现了下,Bug挺多的,我菜鸡技术hold不住,不会继续更新,等大佬

在长按模式,每 * 秒自动输出,设置为 0 不启用。 目前的状态是停顿的时候会识别出一些空耳不知所云的文字,不知道怎么区分什么时段是真的没有说话 因此,不建议把秒数设的太短

HaujetZhao commented 4 months ago

没有做长语音自动上屏是有原因的。

现在的长语音识现,是分段识别,每录音够 19 秒,就把前15秒+2秒识别。这么做的原因是使用的语音模型是非流式模型,只能输入一整段音频识别。

倒是也有流式模型,可以实时输出文字,延迟大概零点几秒,但是这种模型的识别准确率低了很多,已经低到了我不能接受的程度。

识别出来的每一段都是没有标点的,目前的策略是将所有片段识别完成后,合并到一起,再统一添加标点,如果连续上屏,就需要考虑在下一段音频识别出来后,重新修改添加标点,之前已经打出来的一些文字就需要被修改。

然后每15秒上屏一段文字,而且结果与语音有两秒以上的延迟,这样的流式效果是很差的,做出来还不如不做。

H1DDENADM1N commented 4 months ago

微软新发布的插件 VS Code Speech 支持流式语音输入,而且也是离线的,只是可惜只能用在 vs code

HaujetZhao commented 4 months ago

微软新发布的插件 VS Code Speech 支持流式语音输入,而且也是离线的,只是可惜只能用在 vs code

试了下,效果不错,支持多语言。等开源吧。

HaujetZhao commented 4 months ago

拆开 VS Code Speech 中文包看了下,模型是量化的 onnx 格式,从配置文件得到,流式语音识别模型是 RNN-Transducer ,它用的是微软的 Azure / AI Services / Speech Service / Embedded Speech

文档:https://learn.microsoft.com/en-us/azure/ai-services/speech-service/embedded-speech

也就是说,是微软的语音识别服务嵌入版,需要审核后下发 model key,才能用它的 api 和 sdk 使用模型,key 应该是嵌入到了 VS Code 的代码中。

看来开源使用是无望了,这是给人家的商业离线 sdk 打广告呢