资源简介

本模块已经编译好了 可以直接使用 也有源码在里面 对freeswitch的空号识别有兴趣 已经想学习编写freeswitch模块的人 可以下载看看

资源截图

代码片段和文件信息

/* asr mod. Copyright 2017 xuhuaiyi ALL RIGHTS RESERVED!
    Author: cdevelop@qq.com(wwww.ddrj.com)

    之前写了一个商业模块mod_vad,以及二次开发接口SmartIVR(RESTful API)详细看 http://www.dingdingtong.cn/smartivr/
    很多用户只想测试一下ASR的效果以及希望自己掌握获取FreeSWITCH语音数据的原理和过程,所以特意写了这个开源项目供大家参考。
    本项目的技术交流可以加群:340129771
    如果需要商业服务和支持可以联系QQ:1280791187,或者微信:cdevelop
    
    本项目是通过阿里云实时语音识别接口把通话中的语音流发送到阿里识别服务器,识别结果通过ESL事件通知业务程序。


*/

#include “switch.h“
#include “NlsClient.h“


 SWITCH_MODULE_LOAD_FUNCTION(mod_asr_load);
 SWITCH_MODULE_SHUTDOWN_FUNCTION(mod_asr_shutdown);
 
 extern “C“ {
     SWITCH_MODULE_DEFINITION(mod_asr mod_asr_load mod_asr_shutdown NULL);
 };

// NlsClient nlc;
 NlsSpeechCallback  callback;

typedef struct {

    switch_core_session_t   *session;
    switch_media_bug_t      *bug;

    NlsRequest              *request;
    char                    *id;
    char                    *seceret;

    int                     stop;

} switch_da_t;


void OnResultDataRecved(NlsEvent* str void* para)
{
    switch_log_printf(SWITCH_CHANNEL_LOG SWITCH_LOG_NOTICE “ OnResultDataRecved %s %s\n“ str->getId() str->getResponse());
    
    /*
    {“finish“:1“request_id“:“13d5daad670947a5a7a12c581f5dc8b7““status_code“:200“version“:“2.0“}
    {“finish“:0“request_id“:“13d5daad670947a5a7a12c581f5dc8b7““result“:{“sentence_id“:10“begin_time“:50960“end_time“:52915“status_code“:0“text“:“电话挂掉吧拜拜“}“status_code“:200“version“:“2.0“}
    {“finish“:0“request_id“:“13d5daad670947a5a7a12c581f5dc8b7““result“:{“sentence_id“:10“begin_time“:50960“end_time“:-1“status_code“:1“text“:“电话挂“}“status_code“:200“version“:“2.0“}
    {“finish“:0“request_id“:“76a6e062ec9b4db68f5f6016c7f700aa““result“:{“sentence_id“:1“begin_time“:1100“end_time“:3505“status_code“:0“text“:“哎,好的一订单大概多少钱啊“}“status_code“:200“version“:“2.0“}
    {“finish“:0“request_id“:“76a6e062ec9b4db68f5f6016c7f700aa““result“:{“sentence_id“:1“begin_time“:1100“end_time“:-1“status_code“:1“text“:“哎,好的一订单大概多少钱“}“status_code“:200“version“:“2.0“}
    */

    switch_event_t *event = NULL;
    if (switch_event_create(&event SWITCH_EVENT_CUSTOM) == SWITCH_STATUS_SUCCESS) {

        event->subclass_name = strdup(“asr“);
        switch_event_add_header_string(event SWITCH_STACK_BOTTOM “Event-Subclass“ event->subclass_name);
        switch_event_add_header_string(event SWITCH_STACK_BOTTOM “ASR-Response“ str->getResponse());
        switch_event_add_header_string(event SWITCH_STACK_BOTTOM “Channel“ str->getId());
// switch_event_add_header_string(event SWITCH_STACK_BOTTOM,“uuid“ uuid)
        switch_event_fire(&event);
    }

}

void OnOperationFailed(NlsEvent* str void* para)
{
    switch_log_printf(SWITCH_CHANNEL_LOG SWITCH_LOG_WARNING “ OnOperationFailed %s %s\n“ str->getId() str->getErrorMessage());

    switch_event_t *event = NULL;
    if (switch_event_create(&event SWITCH_EVENT_CUSTOM) == SWITCH_STATUS_SUCCESS) {

        event->subclass_name = strdup(“asr“);
        switch_event_add_hea

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件        309  2018-09-11 17:27  asr64\.git\config

     文件         73  2018-09-11 17:27  asr64\.git\description

     文件         23  2018-09-11 17:27  asr64\.git\HEAD

     文件        478  2018-09-11 17:27  asr64\.git\hooks\applypatch-msg.sample

     文件        896  2018-09-11 17:27  asr64\.git\hooks\commit-msg.sample

     文件       3327  2018-09-11 17:27  asr64\.git\hooks\fsmonitor-watchman.sample

     文件        189  2018-09-11 17:27  asr64\.git\hooks\post-update.sample

     文件        424  2018-09-11 17:27  asr64\.git\hooks\pre-applypatch.sample

     文件       1642  2018-09-11 17:27  asr64\.git\hooks\pre-commit.sample

     文件       1348  2018-09-11 17:27  asr64\.git\hooks\pre-push.sample

     文件       4898  2018-09-11 17:27  asr64\.git\hooks\pre-rebase.sample

     文件        544  2018-09-11 17:27  asr64\.git\hooks\pre-receive.sample

     文件       1492  2018-09-11 17:27  asr64\.git\hooks\prepare-commit-msg.sample

     文件       3610  2018-09-11 17:27  asr64\.git\hooks\update.sample

     文件        918  2018-09-11 17:27  asr64\.git\index

     文件        240  2018-09-11 17:27  asr64\.git\info\exclude

     文件        211  2018-09-11 17:27  asr64\.git\logs\HEAD

     文件        211  2018-09-11 17:27  asr64\.git\logs\refs\heads\master

     文件        211  2018-09-11 17:27  asr64\.git\logs\refs\remotes\origin\HEAD

     文件        174  2018-09-11 17:27  asr64\.git\objects\09\ae08c6ecb22c4ead959d3e03702d3ead548556

     文件     195687  2018-09-11 17:27  asr64\.git\objects\18\57417c027f359ccb75bd50023693c9cfbc9b89

     文件       3136  2018-09-11 17:27  asr64\.git\objects\27\99e4d8fb9edc46f2052ec35e783f58f5a74dbf

     文件       2608  2018-09-11 17:27  asr64\.git\objects\3a\9cd4311389541d8c1326c84da423b1e5144962

     文件        215  2018-09-11 17:27  asr64\.git\objects\41\6e60b15ce18d4c6c2af6ae812c0f17abfc3360

     文件        685  2018-09-11 17:27  asr64\.git\objects\55\10d7834db3897efae2f1ed7060b0460e3eae2c

     文件        215  2018-09-11 17:27  asr64\.git\objects\59\fa3028ab8f9f0a36bc703ad325528a80fd9a62

     文件        159  2018-09-11 17:27  asr64\.git\objects\62\7a96f809f86d9f8b243d40c788db617bb59119

     文件         88  2018-09-11 17:27  asr64\.git\objects\65\50962d3bf13978d81c3526f775c1250f93bebe

     文件        169  2018-09-11 17:27  asr64\.git\objects\6e\b01be7fcbbae876b09c27cefeab3fbded69cc1

     文件        167  2018-09-11 17:27  asr64\.git\objects\7a\51508e65dd2db61070fc25cd3826dd7fe01f59

............此处省略272个文件信息

评论

共有 条评论