【问题标题】:Flash: Is it possible to record the user voice & act on it?Flash:是否可以录制用户声音并对其进行操作?
【发布时间】:2010-11-25 09:49:41
【问题描述】:

是否可以通过麦克风记录最终用户?

我可以用录音做什么?

我可以实时获取例如声音的音量(分贝)吗?

我可以将记录保存在文件中吗?

谢谢。

【问题讨论】:

标签: flash actionscript-3 audio


【解决方案1】:

是的,Flash 允许(在用户许可的情况下)通过麦克风进行录音。

这就是无数像 Stickam 这样的网站提供视频会议功能的方式。

您无法获取以 dB 为单位的实际(准确)声压读数 - 这是声压的绝对测量值,取决于您在用户机器(麦克风)上无法控制的一百个因素类型、位置、定位、微调、频率响应、A/D 转换、硬件压缩等)。但是,您可以对输入信号的相对幅度进行采样。

【讨论】:

    【解决方案2】:

    据我所知,您无法访问其波形或音量...有一个 activityLevel 属性,其中包含有关活动级别的某种信息,但您无法访问原始频谱或任何类似内容。 要录制音频文件,您可以通过 FMS 将其发送到服务器,最终您可以在那里对其进行处理,但这将取决于连接延迟等,因此很难向用户提供准确的响应.. . 看到这个: http://theflashblog.com/?p=829

    【讨论】:

    • 不,您不需要服务器来分析麦克风数据。 microphone.addEventListener(SampleDataEvent.SAMPLE_DATA, onMicrophoneData);
    【解决方案3】:

    客户端有一个设置可以打开对网络摄像头和麦克风的访问,但您无法在应用程序本身中控制它。用户必须选择启用此功能。如果你必须做这样的事情,你最好实现某种形式的 Active X 控件,用户可能会在不知不觉中接受对这个函数的访问。

    【讨论】:

      【解决方案4】:

      http://vimeo.com/8203323 语音控制的绝佳示例

      【讨论】:

        【解决方案5】:

        是的,您可以使用 flash.media.Microphone 类录制音频。

        不,您不能从 Flash 保存到文件,因为 Flash 不允许您写入磁盘。好吧,您可以保存到 LSO,但默认情况下限制为 100 KB,并且无论如何都不是纯文件。您可能可以使用 AIR 来做到这一点。我在 Microphone 类的文档中看到,您可以将音频流式传输回 Flash Media Server(或兼容的,如下面评论中所述),但这并不完全是“保存到文件”。

        至于处理音频,从技术上讲,是的,您可以按照您的建议进行操作,但这可能不切实际。 ActionScript 是一种解释性语言,没有特别强大的数值处理能力。在 Flash 中执行此操作可能比在本机代码中慢 10-50 倍。接受这种速度冲击就像将自己送回 10 到 15 年,并且必须使用当时的技术来做到这一点。所以,无论你想做什么,你都必须问问自己他们是否在 90 年代中后期实时进行。如果没有,Flash 可能会太慢。例如,与说话人无关的大词汇量语音识别可能不实用。

        当您仅使用 ActionScript 将调用脚本写入以本机代码编写的 Flash Player 时,它的效果最佳。在 Flash 获得语音识别(或您希望拥有的任何音频功能)之前,我会放弃这个项目。

        【讨论】:

        • 几个更正:首先,您可以将音频数据流式传输到各种媒体服务器中的任何一个,包括像 red5 这样的免费媒体服务器。其次,Flash 做任何提到的问题都不会太慢。如果他只是想做他的问题中列出的事情,那么 OP 没有理由“放弃这个项目”。
        • 我已经修复了上面的 FMS 评论。至于 Flash 太慢的问题,我不想激怒任何人,我只是想指出,如果你想做一些今天需要强大的计算机和本机代码才能做好的事情——比如我上面的一个具体示例是语音识别——在 Flash 内部获得该功能之前,Flash 可能不是正确的答案。而已。我现在可以恢复我的 +1 吗? :)
        • Warren - 你对 Flash 中的可能性一无所知。 theflashblog.com/?p=197 这里是音频频谱分析仪的列表,它们通过处理声音数据来可视化声音形式。这是使用 Flash 可能实现的一个示例。
        • 这些事情是在 10 到 15 年前实时完成的,所以它们属于我上面的资格。需要明确的是:我并不是说“你不能在 Flash 中进行音频处理”。我是说你不能指望用它来做目前需要运行本机代码的计算机的全部容量的事情。就是这样。
        • Warren,AS3 的语音识别速度可能确实太慢了,但没有人问过这个问题。您可能会更合理地回答 Flash 对于 OP 询问的事情很好,但他应该提防尝试任何更高级的处理,但即使这样也会产生误导,因为(正如其他更好的答案所解释的那样),当前的 API 不会公开无论如何,此类处理所需的数据。
        猜你喜欢
        • 1970-01-01
        • 2019-10-08
        • 1970-01-01
        • 2015-11-06
        • 1970-01-01
        • 2020-06-15
        • 2012-04-14
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多