在freeSwitch中,实现来电对接百度语音翻译

要在FreeSWITCH中实现来电对接百度语音翻译,可以使用FreeSWITCH提供的mod_vbr(Voice Biometric Recognition)模块结合开发者可以使用的百度API接口来实现。

下面是基本的实现步骤:

  1. 安装mod_vbr模块

首先需要在FreeSWITCH中安装mod_vbr模块。可以通过以下命令进行安装:

sudo apt-get install freeswitch-mod-vbr
  1. 注册并获取百度API Key

在百度智能云控制台注册并获取语音识别的API Key和Secret Key。

  1. 配置mod_vbr

在FreeSWITCH的/etc/freeswitch/autoload_configs/vbr.conf.xml文件中添加如下配置:

<configuration name="vbr.conf" description="Voice Biometric Recognition">
  <settings>
    <param name="api-url" value="http://vop.baidu.com/server_api"/>
    <param name="api-key" value="YOUR_APP_ID_HERE"/>
    <param name="api-secret" value="YOUR_APP_SECRET_HERE"/>
    <param name="channel-type" value="both"/>
    <param name="audio-format" value="wav"/>
    <param name="silence-timeout" value="3"/>
    <param name="initial-silence-timeout" value="5"/>
  </settings>
</configuration>

YOUR_APP_ID_HEREYOUR_APP_SECRET_HERE替换为你在控制台中获取到的API Key和Secret Key。

  1. 创建FreeSWITCH Dialplan

在FreeSWITCH的dialplan中,可以使用vbr应用程序调用mod_vbr模块,并将它与一个播放文件(例如,提示用户说出相应的单词)和detect_speech应用程序一起使用。

下面是一个示例dialplan:

<include>
  <context name="public">
    <extension name="test_vbr">
      <condition field="destination_number" expression="1000">
        <action application="playback" data="ivr/phrase/en_us/prepaid_call_time"/>
        <action application="vbr" data="en-US 1"/>
        <action application="detect_speech" data=""/>
        <action application="log" data="DEBUG detect_speech: ${detect_speech_result}"/>
      </condition>
    </extension>
  </context>
</include>

在这个dialplan中,当被叫号码为1000时,先播放ivr/phrase/en_us/prepaid_call_time文件,然后调用vbr应用程序,生成英文语音识别。接着调用detect_speech应用程序,将处理结果存储到${detect_speech_result}变量中。同时,使用log应用程序将${detect_speech_result}变量中的值输出到日志中,便于调试。

需要注意的是,为了使用vbr应用程序,必须为该语音通道启用音频流调谐功能。可以在FreeSWITCH的配置文件/etc/freeswitch/autoload_configs/voipflow.conf.xml中添加以下配置来启用音频流调谐:

<configuration name="voipflow.conf" description="VoIP flow configurations">
  <settings>
    <param name="ti_enable" value="true"/>
  </settings>
</configuration>

ti_enable参数设置为true来启用音频流调谐功能。

  1. 测试

现在可以启动FreeSWITCH,并通过以下命令进行测试:

sudo fs_cli -x "originate sofia/external/1000@127.0.0.1 &playback(ivr/phrase/en_us/prepaid_call_time)"

在播放文件播放后,Speak some english 然后听取结果输出到日志文件。

注意:本示例仅提供了一个基本的框架,你应该相应地调整其配置,以满足你的实际需求。

posted @ 2023-06-17 10:06  孙同海  阅读(134)  评论(0编辑  收藏  举报