获取流进来的用户语音的音频流记录

时间:2019-05-21 22:28:32

标签: voicexml plumvoice

我们当前使用voicexml和https://www.plumvoice.com/来获取语音记录,然后将其发送到我们的后端服务器进行处理,类似于文档中提到的用于记录用户输入的示例: https://www.plumvoice.com/docs/dev/developer_reference:tutorial

<?xml version="1.0"?>
<vxml version="2.0">
    <form>
        <record name="myrecording" type="audio/x-wav" beep="true">
            <prompt>
                Please record a message after the beep.
            </prompt>

            <filled>
                You just recorded the following message:
                <value expr="myrecording"/>
                <submit next="submitrecording.php" namelist="myrecording"
                method="post" enctype="multipart/form-data"/>
            </filled>
        </record>
    </form>
</vxml>

这很好用,并在用户输入末尾提供了一个wav文件。 有没有一种方法可以使用户在讲话时以音频流的形式输入而不是最后一个文件?

2 个答案:

答案 0 :(得分:1)

不。根据VoiceXML W3C的建议,仅在录制完成时(即最终静音或DTMF输入),录制内容才可用。 VoiceXML没有流式传输功能。

如果您需要这种流API,则可能需要看看Live Media Streaming in Amazon Connect

答案 1 :(得分:0)

您可以使用FFMPEG(而不是重新发明轮子),而FFMPEG则被宣传为“一个完整的跨平台解决方案,用于记录,转换和流传输音频和视频。”

ffmpeg -re -i input -f rtsp -muxdelay 0.1 rtsp://server/live.sdp

您可以选择无延迟的选项“ -preset ultrafast -tune zerolatency”或从Logitec C930摄像机“ -i / dev / video0”或视频文件“ -i your_file_location”捕获

我可以举一个例子,就是如何将带有声音的网络摄像头流传输到在线服务器

lxterminal -e ffmpeg -f v4l2 -framerate 30 -video_size 800x448 -i /dev/video0 -i /home/pi/Desktop/sound/ic_ch.png -codec:v h264 -r 30 -s 800x448 -bf 0 -g 30 -bufsize 8000k -maxrate 8000k -filter_complex "[0:v][1:v] overlay=(W-w)/2:(H-h)/2:enable='gte(t,1)'" -preset ultrafast -tune zerolatency -f h264 udp://192.168.5.10:23003 & sleep 0.1

不要害怕,您不需要所有选择。只需采用输入,输出和编码标准即可。