语音录音组件

就这样! 确保您使用的是我提供的网址。 :+1:

5 个赞

这是我的 之前之后 的结果:

(另外请注意,唯一一个没有显示音频片段时长的嵌入式 .mp3 播放器是 Windows 上录制的,无论是在之前还是之后。)

之前:

之后:

如果您希望我进行任何其他测试,请告诉我!

2 个赞

在 iPad 和 iPhone 上,以及在 DiscourseHub 上,它都能正常工作。剪辑的长度在播放时会显示出来。

3 个赞

感谢您的反馈,Jakke!

另外,感谢 @denvergeeks,我修复了两个问题,他确认一切现在都能完美播放了。

我很快就会提交拉取请求。 :+1:

5 个赞

我提交了 PR :+1:

其他 PR 可能的功能:

  • 添加对聊天的支持
  • 添加对暂停/恢复的支持
10 个赞

太棒了

3 个赞

一个疯狂的想法——为作曲家上传的 .mp3 音频文件添加一个 AI 转录按钮?这样用户就可以(现在)在作曲家中录制帖子,还可以使其文本可读和可搜索。

要包含 OpenAI/Whisper 功能需要什么?

或者,在选择作曲家中的文件后出现的 AI 下拉选项中……

……可以包含一个转录文本选项

8 个赞

这将是一个有趣且有用的功能!:+1:

我将在另一天检查可行性。

8 个赞

非常感谢!

3 个赞

如果实现在聊天中,那么内联自动转录也可以包含翻译。

5 个赞

我在系统中更新了这个组件。
https://github.com/paviliondev/discourse-voice-recorder

在 Mac 上的 Firefox/Safari/Chrome 以及 iPhone 上试过
它显示这个,但无法录音。
有人能确认一下吗?谢谢……

2 个赞

请检查浏览器的控制台,看是否有错误。\n\n此时,这意味着有东西在阻止库脚本加载。

3 个赞

我刚刚按照上面链接的 paviliondev 存储库中的说明全新安装了 TC。

我的 Discourse 实例中的所有功能都正常工作。这是一个视频……

(在创建/上传/播放的任何步骤中,控制台中都没有出现任何错误。)

4 个赞

这是托管在 communiteq 上的 discourse 3.2.1

load-script.js:43 由于违反了以下内容安全策略指令,拒绝加载脚本“https://www.mydiscoursesite.com/uploads/db9860/original/3X/c/f/cf579d0503105d41f84653929d510e17f12d9f5b.js”:
“script-src
https://www.mydiscoursesite.com/logs/
https://www.mydiscoursesite.com/sidekiq/
https://www.mydiscoursesite.com/mini-profiler-resources/
https://www.mydiscoursesite.com/assets/
https://www.mydiscoursesite.com/extra-locales/
https://www.mydiscoursesite.com/highlight-js/
https://www.mydiscoursesite.com/javascripts/
https://www.mydiscoursesite.com/plugins/
https://www.mydiscoursesite.com/theme-javascripts/
https://www.mydiscoursesite.com/svg-sprite/

2 个赞

我可以复现。

最近引入的一项设置允许外部脚本动态运行,无需手动配置。
它在 3.2 中不可用。

image

允许“/uploads”目录绝对不是一个好主意。
但是,作为一种变通方法,只允许 URL 应该没问题。

如果您转到组件设置:

您可以右键单击每个链接,将其复制并粘贴到 content security policy script-src 设置中。

我不知道从主题组件的角度来看,处理 CSP 问题是否有更好的方法。 :thinking:

1 个赞

感谢 @Arkshine

在控制台中,我看到了 /uploads/ URL 中的这两个 JS,并已将它们添加到“内容安全策略脚本源”列表中。

https://www.site.com/uploads/db9860/original/3X/c/f/cf579d0503105d41f84653929d510e17f12d9f5b.js
https://www.site.com/uploads/db9860/original/3X/a/2/a25eb4ec6c9652e57eefc81bc25c81105232369b.js

确认了浏览器的录制权限。
然后,每次开始录制时,都会出现错误,并且 URL 不同,似乎 ID 是动态生成的?

https://www.site.com/8f955841-9b8b-4857-8549-ac57ee0e4517
https://www.site.com/d43014ac-e80d-4879-83a2-bd046d43a25c

添加这些 URL 没有帮助,似乎它们是为每次录制生成的……?

1 个赞

可以尝试在 content security policy script-src 中添加 script-src: blob:,可以吗?

3 个赞

它奏效了,谢谢 @Arkshine

期待在聊天中进行语音录制 :slight_smile:

4 个赞

我没有遇到此错误,显然是因为我已经在 内容安全策略脚本源 中将 blob: 作为条目,因为 @peter.be插件 需要它,并且自从删除该插件后,我没有从 内容安全策略脚本源 中删除 blob: 条目,所以它已经存在了,如下所示……

是否还需要在 Discourse 管理员设置中将 mp3 添加到授权扩展名列表中?我也已经从之前就有了……

3 个赞

仅供思考:CSP 往往会严重破坏事物,因此通常会使用实际上只是通配符的规则——然后 CSP 就完全失去了它的意义。

所以呢?

2 个赞