小编mra*_*190的帖子

使用 SWIG 和 C# 时将 char* 缓冲区转换为字节数组

我维护一个 C++ SDK,现在需要转换为其他语言(特别是 C# 和 Java)。我正在使用 SWIG 生成包装器代码并成功完成 Java 工作。我现在需要让 C# 工作。

我有一个 C++ 函数(忽略Header函数签名中的对象 - 我已经解决了)

int send(Header header, char *payload);
Run Code Online (Sandbox Code Playgroud)

此外,我有一个directorC++ 类,如下所示:

class Callbacks {
public:
    virtual ~Callbacks() { }
    virtual void receive(Header header, char *payload) { }
};
Run Code Online (Sandbox Code Playgroud)

这允许我在 Java 和 C# 代码中创建回调。

我需要C# 中的send以下函数签名:receive

int send(Header header, byte[] payload);
Run Code Online (Sandbox Code Playgroud)

void receive(Header header, byte[] payload);
Run Code Online (Sandbox Code Playgroud)

SWIG 中的类型映射似乎是可行的方法,因此这是我对 C# 类型映射的尝试:

%module(directors="1") example

%{
#include "example.h"
%}

%feature("director") Callbacks;

%include "arrays_csharp.i" …
Run Code Online (Sandbox Code Playgroud)

c# arrays buffer swig char

5
推荐指数
1
解决办法
1739
查看次数

用Sphinx4发现关键字或关键词

我目前正在尝试使我的java代码(使用eclipse)执行某些功能(如果说了某件事)。我正在使用Sphinx4库,这是我目前拥有的:

我想做的是在它说的那行:

IF (TRUE) someFunction();
Run Code Online (Sandbox Code Playgroud)

如果我的发言是Hello Computer,Hello Jarvis,Good Morning Computer或Good Morning Jarvis,则运行该功能。或者换句话说,如果语音与.gram文件中的“ public <greet>”行匹配,请运行该函数。更具体地说,如果我的讲话符合该语法规则,则返回“ greet”。对不起,如果这没有道理...

这是我的listener.java文件:

package speechRecognition;

import java.io.File;
import javax.sound.sampled.AudioInputStream;
import javax.sound.sampled.AudioSystem;
import javax.sound.sampled.Clip;
import edu.cmu.sphinx.frontend.util.Microphone;
import edu.cmu.sphinx.recognizer.Recognizer;
import edu.cmu.sphinx.result.Result;
import edu.cmu.sphinx.util.props.ConfigurationManager;

public class Listener {

    public void someFunction(){
        System.out.println("Did Something");
    }

    public static void main(String[] args) {
        ConfigurationManager cm;
        if (args.length > 0) { cm = new ConfigurationManager(args[0]);
        } else { cm = new ConfigurationManager(Listener.class.getResource("configurations.config.xml")); }

        Recognizer recognizer = (Recognizer) cm.lookup("recognizer");
        recognizer.allocate();

        Microphone microphone = (Microphone) cm.lookup("microphone"); …
Run Code Online (Sandbox Code Playgroud)

java grammar speech-recognition sphinx4 cmusphinx

3
推荐指数
1
解决办法
2532
查看次数

标签 统计

arrays ×1

buffer ×1

c# ×1

char ×1

cmusphinx ×1

grammar ×1

java ×1

speech-recognition ×1

sphinx4 ×1

swig ×1