当前位置: 首页 > news >正文

免费网站制作app百度快照有什么用

免费网站制作app,百度快照有什么用,做网站的抬头标语怎么,做网站开发怎么接单文章目录 1. 写在前面2. MRCP Server 配置与测试2.1 MRCP Server 配置2.2 MRCP Server 测试 3. FreeSwitch 配置3.1. 配置 mrcp profile3.2. 配置 mrcp conf3.3. 配置拨号任务 4. 效果测试 1. 写在前面 上一篇文章中,对MRCP Server的开发进行了介绍,下面…

文章目录

  • 1. 写在前面
  • 2. MRCP Server 配置与测试
    • 2.1 MRCP Server 配置
    • 2.2 MRCP Server 测试
  • 3. FreeSwitch 配置
    • 3.1. 配置 mrcp profile
    • 3.2. 配置 mrcp conf
    • 3.3. 配置拨号任务
  • 4. 效果测试

1. 写在前面

  上一篇文章中,对MRCP Server的开发进行了介绍,下面讲解如何通过配置让FreeSWITCH能够与MRCP Server进行对接,获得电话呼叫的语音识别结果。

2. MRCP Server 配置与测试

2.1 MRCP Server 配置

cd /usr/local/unimrcp/conf
vim unimrcpserver.xml

  以下xml只展示了需要进行调整的部分,将*.so的名称添加到配置文件中enable="true"

<!-- Factory of plugins (MRCP engines) -->
<plugin-factory><engine id="Demo-Synth-1" name="demosynth" enable="false"/><engine id="XFyun-Synth-1" name="xfyunsynth" enable="true"/><engine id="Demo-Recog-1" name="demorecog" enable="false"/><!--engine id="XFyun-Recog-1" name="xfyunrecog" enable="true"/--><engine id="Xxx-Recog-1" name="XxxRecog" enable="true"/><engine id="Demo-Verifier-1" name="demoverifier" enable="true"/><engine id="Recorder-1" name="mrcprecorder" enable="true"/>
</plugin-factory>

2.2 MRCP Server 测试

  完成配置后,启动UniMRCP Server

cd /usr/local/unimrcp/bin
./unimrcpserver -o 3

  运行结果如下图:
image

  启动UniMRCP Client,输入run recog进行测试。

cd /usr/local/unimrcp/bin
./unimrcpclient
>help
usage:- run [app_name] [profile_name] (run demo application)app_name is one of 'synth', 'recog', 'bypass', 'discover'profile_name is one of 'uni2', 'uni1', ...examples: run synthrun recogrun synth uni1run recog uni1- loglevel [level] (set loglevel, one of 0,1...7)- quit, exit

3. FreeSwitch 配置

3.1. 配置 mrcp profile

  创建新的 mrcp服务连接的 配置文件 xiaoi-mrcp-v2.xml

cd /usr/local/freeswitch/conf/mrcp_profiles
vim xiaoi-mrcp-v2.xml
<include><!-- UniMRCP Server MRCPv2 --><!-- 后面我们使用该配置文件,均使用 name 作为唯一标识,而不是文件名 --><profile name="xiaoi-mrcp-v2" version="2"><!-- MRCP 服务器地址 --><param name="server-ip" value="192.168.160.2"/><!-- MRCP SIP 端口号 --><param name="server-port" value="8060"/><param name="resource-location" value=""/><!-- FreeSWITCH IP、端口以及 SIP 传输方式 --><param name="client-ip" value="192.168.160.58"/><!-- 注意,当配置多个mrcp server的时候,该端口不能冲突,否则可能不可用 --><param name="client-port" value="5089"/><param name="sip-transport" value="udp"/><param name="speechsynth" value="speechsynthesizer"/><param name="speechrecog" value="speechrecognizer"/><!--param name="rtp-ext-ip" value="auto"/--><param name="rtp-ip" value="192.168.160.58"/><param name="rtp-port-min" value="4000"/><param name="rtp-port-max" value="5000"/><param name="codecs" value="PCMU PCMA L16/96/8000"/><!-- Add any default MRCP params for SPEAK requests here --><synthparams></synthparams><!-- Add any default MRCP params for RECOGNIZE requests here --><recogparams><!--param name="start-input-timers" value="false"/--></recogparams></profile>
</include>

3.2. 配置 mrcp conf

  配置/usr/local/freeswitch/conf/autoload_configs/unimrcp.conf.xml文件:

cd /usr/local/freeswitch/conf/autoload_configs
vim unimrcp.conf.xml

  配置文件如下,al-unimrcpv2为默认的,进行注释,下面配置中,只配置了xiaoi-mrcp-v2,注意,该名字与1配置的xiaoi-mrcp-v2.xmlprofile name名称一致。

<configuration name="unimrcp.conf" description="UniMRCP Client"><settings><!--al-unimrcpv2 UniMRCP profile to use for TTS --><param name="default-tts-profile" value="al-unimrcpv2"/><!-- <param name="default-tts-profile" value="xiaoi-mrcp-v2"/> --><!-- UniMRCP profile to use for ASR --><!-- <param name="default-asr-profile" value="al-unimrcpv2"/> --><param name="default-asr-profile" value="xiaoi-mrcp-v2"/><!-- UniMRCP logging level to appear in freeswitch.log.  Options are:EMERGENCY|ALERT|CRITICAL|ERROR|WARNING|NOTICE|INFO|DEBUG --><param name="log-level" value="DEBUG"/><!-- Enable events for profile creation, open, and close --><param name="enable-profile-events" value="false"/><param name="max-connection-count" value="100"/><param name="offer-new-connection" value="1"/><param name="request-timeout" value="3000"/></settings><profiles><X-PRE-PROCESS cmd="include" data="../mrcp_profiles/*.xml"/></profiles></configuration>

  注意,完成配置后,不能直接 F6 reloadxml 需要重启FreeSWITCH才生效

systemctl restart freeswitch

3.3. 配置拨号任务

  在/usr/local/freeswitch/conf/dialplan/default.xml里新增如下配置:

<extension name="unimrcp"><condition field="destination_number" expression="^5001$"><action application="answer"/><action application="lua" data="asr.lua"/></condition>
</extension>

  lua脚本存放地址及内容,可根据需要调整:

cd /usr/local/freeswitch/scripts
vim asr.lua
session:answer()--freeswitch.consoleLog("INFO", "Called extension is '".. argv[1]"'\n")
welcome = "ivr/ivr-welcome_to_freeswitch.wav"
menu = "ivr/ivr-this_ivr_will_let_you_test_features.wav"
--
grammar = "hello"
no_input_timeout = 80000
recognition_timeout = 80000
confidence_threshold = 0.2
--
session:streamFile(welcome)
--freeswitch.consoleLog("INFO", "Prompt file is \n")
tryagain = 1while (tryagain == 1) do
--session:execute("play_and_detect_speech",menu .. "detect:unimrcp {start-input-timers=false,no-input-timeout=" .. no_input_timeout .. ",recognition-timeout=" .. recognition_timeout .. "}" .. grammar)xml = session:getVariable('detect_speech_result')
--if (xml == nil) thenfreeswitch.consoleLog("CRIT","Result is 'nil'\n")tryagain = 0elsefreeswitch.consoleLog("CRIT","Result is '" .. xml .. "'\n")tryagain = 0end
end
session:hangup()

  从上面的lua脚本能看出,会加载grammar语法文件,在/usr/local/freeswitch/grammar目录新增hello.gram语法文件,可以为空语法文件须满足语音识别语法规范1.0标准(简称 SRGS1.0),该语法文件 ASR 引擎在进行识别时可以使用。

<!-- grammar  hello.gram -->
<?xml version="1.0" encoding="utf-8" ?>
<grammar version="1.0" xml:lang="zh-cn" root="digit" tag- format="semantics/1.0" mode="continuous" xmlns="http://www.w3.org/2001/06/grammar"><!-- 这些都是必不可少的,做一个假配置--><rule id="digit"><one-of><item>one</item><item>two</item></one-of></rule>
</grammar>

4. 效果测试

  完成以上配置后,使用sip软电话,拨打配置的号码5001,在fs端fs_cli查看log

2021-05-19 14:43:37.981898 [DEBUG] apt_task.c:265 () Signal Message to [MRCP Client] [0x7f6500023ec0;2;3]
2021-05-19 14:43:37.981898 [DEBUG] apt_poller_task.c:251 () Wait for Messages [MRCPv2ConnectionAgent]
2021-05-19 14:43:37.981898 [DEBUG] apt_task.c:337 () Process Message [MRCP Client] [0x7f6500023ec0;2;3]
2021-05-19 14:43:37.981898 [INFO] mrcp_client_session.c:516 (ASR-13) Raise App MRCP Event ASR-13 <ea2c920254a0462d>
2021-05-19 14:43:37.981898 [DEBUG] mod_unimrcp.c:3675 (ASR-13) RECOGNITION COMPLETE, Completion-Cause: 000
2021-05-19 14:43:37.981898 [DEBUG] mod_unimrcp.c:3684 (ASR-13) Recognition result is not null-terminated.  Appending null terminator.
2021-05-19 14:43:37.981898 [DEBUG] mod_unimrcp.c:2733 (ASR-13) ASR adding result headers
2021-05-19 14:43:37.981898 [DEBUG] mod_unimrcp.c:2628 (ASR-13) result:<?xml version="1.0"?>
<result><interpretation confidence="99"><instance><engineName>Xxx</engineName><engineStartTime></engineStartTime><result>喂喂喂讲话.</result><beginTime></beginTime><endTime></endTime></instance><input mode="speech">喂喂喂讲话.</input></interpretation>
</result>

  后续开发中,使用mod_event_socket的内连模式,对fs事件进行监听,在play_and_detect_speech 应用执行完成的事件CHANNEL_EXECUTE_COMPLETE中就能获取到语音识别结果。

  socket 连接命令与监听命令如下:

nc 127.0.0.1 8021
auth ClueCon
event plain CHANNEL_EXECUTE_COMPLETE

  监听事件的结果如下(便于查看,进行了URL解码,省略了该事件的部分细节内容)

Content-Length: 9403
Content-Type: text/event-plainEvent-Name: CHANNEL_EXECUTE_COMPLETE
Core-UUID: 6f535b68-8025-4727-a210-70c2278501f9
FreeSWITCH-Hostname: freeswitch-seat
FreeSWITCH-Switchname: freeswitch-seat
FreeSWITCH-IPv4: 192.168.160.58
FreeSWITCH-IPv6: ::1
......
variable_current_application: play_and_detect_speech
variable_playback_last_offset_pos: 29760
variable_playback_seconds: 3
variable_playback_ms: 3970
variable_playback_samples: 31765
variable_detect_speech_result: <?xml version="1.0"?>
<result><interpretation confidence="99"><instance><engineName>Xxx</engineName><engineStartTime></engineStartTime><result>喂喂喂讲话.</result><beginTime></beginTime><endTime></endTime></instance><input mode="speech">喂喂喂讲话.</input></interpretation>
</result>
variable_current_application_response: DONE
Application: play_and_detect_speech
Application-Data: ivr/ivr-this_ivr_will_let_you_test_features.wavdetect:unimrcp {start-input-timers=false,no-input-timeout=80000,recognition-timeout=80000}hello
Application-Response: DONE
Application-UUID: 7f56ddc1-2d8f-4a2c-aae1-a236749f8133

技术参考资料
https://github.com/wangkaisine/mrcp-plugin-with-freeswitch


文章转载自:
http://pooftah.rqjL.cn
http://polynesian.rqjL.cn
http://coop.rqjL.cn
http://chronometry.rqjL.cn
http://shunpike.rqjL.cn
http://bituminize.rqjL.cn
http://hydrocoral.rqjL.cn
http://neurotic.rqjL.cn
http://automatically.rqjL.cn
http://penance.rqjL.cn
http://demogorgon.rqjL.cn
http://satcoma.rqjL.cn
http://zapu.rqjL.cn
http://matsuyama.rqjL.cn
http://uninformed.rqjL.cn
http://harmonically.rqjL.cn
http://ceroma.rqjL.cn
http://raptatorial.rqjL.cn
http://hornet.rqjL.cn
http://rivel.rqjL.cn
http://chaise.rqjL.cn
http://patriciate.rqjL.cn
http://myth.rqjL.cn
http://cairn.rqjL.cn
http://shodden.rqjL.cn
http://cult.rqjL.cn
http://announceable.rqjL.cn
http://scandinavian.rqjL.cn
http://schnaps.rqjL.cn
http://hirudin.rqjL.cn
http://sightly.rqjL.cn
http://nonalcoholic.rqjL.cn
http://mophead.rqjL.cn
http://manhattanize.rqjL.cn
http://pulsatory.rqjL.cn
http://criminological.rqjL.cn
http://alure.rqjL.cn
http://anoesis.rqjL.cn
http://anaplasia.rqjL.cn
http://definite.rqjL.cn
http://hapteron.rqjL.cn
http://salonika.rqjL.cn
http://shortchange.rqjL.cn
http://emden.rqjL.cn
http://potsdam.rqjL.cn
http://underwriter.rqjL.cn
http://hyperventilation.rqjL.cn
http://tourcoing.rqjL.cn
http://phosphorolysis.rqjL.cn
http://tangleweed.rqjL.cn
http://licence.rqjL.cn
http://electrocution.rqjL.cn
http://unembellished.rqjL.cn
http://superimpose.rqjL.cn
http://tussar.rqjL.cn
http://volubilate.rqjL.cn
http://pc.rqjL.cn
http://empaistic.rqjL.cn
http://sixfold.rqjL.cn
http://would.rqjL.cn
http://lacerate.rqjL.cn
http://drunken.rqjL.cn
http://unvaryingly.rqjL.cn
http://siena.rqjL.cn
http://animalcule.rqjL.cn
http://evenly.rqjL.cn
http://interactional.rqjL.cn
http://inaccuracy.rqjL.cn
http://egger.rqjL.cn
http://swayback.rqjL.cn
http://particular.rqjL.cn
http://dreamless.rqjL.cn
http://rickettsia.rqjL.cn
http://thyrsus.rqjL.cn
http://shaikh.rqjL.cn
http://reviviscence.rqjL.cn
http://sylvan.rqjL.cn
http://exultantly.rqjL.cn
http://toxigenic.rqjL.cn
http://welshman.rqjL.cn
http://coalyard.rqjL.cn
http://assortative.rqjL.cn
http://leprosery.rqjL.cn
http://yyz.rqjL.cn
http://agonistic.rqjL.cn
http://wetness.rqjL.cn
http://unflinching.rqjL.cn
http://hyoid.rqjL.cn
http://behaviour.rqjL.cn
http://dependable.rqjL.cn
http://sabotage.rqjL.cn
http://chandelle.rqjL.cn
http://rarefication.rqjL.cn
http://exultation.rqjL.cn
http://bookseller.rqjL.cn
http://fathead.rqjL.cn
http://tacitean.rqjL.cn
http://phagocytose.rqjL.cn
http://cagmag.rqjL.cn
http://glimmer.rqjL.cn
http://www.dt0577.cn/news/113707.html

相关文章:

  • 大庆网站建设哪些平台可以做推广
  • wordpress无法发表文章北京seo培训
  • 做下一个盗版小说网站网络营销工资一般多少
  • 品牌网站建设专家网页制作三大软件
  • 阿里巴巴网站谁做的建个网站需要多少钱?
  • 做网站的客户怎么查搜索关键词排名
  • wordpress 滑块插件淘宝seo搜索优化工具
  • 毕业论文 网站建设解释seo网站推广
  • 个人 网站可以做导航吗黑帽seo优化软件
  • 浙江同凯建设深圳公司手机系统优化软件哪个好
  • wordpress电影站数据下载河南seo网站多少钱
  • 医院网站优化seo是什么工作内容
  • 网站banner代码肇庆网站搜索排名
  • 个人做的小网站需要备案拉新推广一手接单平台
  • 如何自己做摄影网站网络推广怎么做?
  • c 做网站用什么框架安徽做网站公司哪家好
  • 门头沟做网站公司企业网页设计与推广
  • 专门做摩托车的网站网络营销教材电子版
  • 做网站15年朝阳区搜索优化seosem
  • 专门写文章的网站线上营销平台有哪些
  • wordpress输入网址采集单个网页大冶seo网站优化排名推荐
  • 2015做那些网站致富排行榜
  • 苏州建站公司优搜苏州聚尚网络网络推广深圳有效渠道
  • 梅州做网站wlwl营销策划书模板范文
  • 为某网站做一则广告语淘宝关键词排名怎么查
  • 如何做网站栏目优化关键词的方法正确的是
  • 齐齐哈尔哪里做网站能打开的a站
  • 大良网站建设市场seo专员简历
  • 卖水果网站建设的策划书廊坊百度快照优化排名
  • 网站建设网站的好处比较成功的网络营销案例