예제 #1
0
        /// <summary>
        /// 创建实时音频流识别对象.
        /// </summary>
        /// <returns>成功返回SpeechTranscriberRequest对象, 否则返回NULL.</returns>
        public SpeechTranscriberRequest CreateTranscriberRequest()
        {
            IntPtr request = NativeMethods.NlsCreateTranscriberRequest();
            SpeechTranscriberRequest STrequest = new SpeechTranscriberRequest();

            STrequest.native_request = request;
            return(STrequest);
        }
예제 #2
0
        /// <summary>
        /// 设置一句话结束回调函数, 检测到了一句话的结束时, sdk内部线程上报该回调.
        /// </summary>
        /// <param name="request">
        /// CreateTranscriberRequest所建立的request对象.
        /// </param>
        /// <param name="callback">
        /// 用户传入的回调函数.
        /// </param>
        /// <param name="para">
        /// 用户对象.
        /// </param>
        /// <returns></returns>
        public void SetOnSentenceEnd(
            SpeechTranscriberRequest request, CallbackDelegate callback, object para = null)
        {
            SpeechParamStruct user_param = new SpeechParamStruct();

            user_param.user     = para;
            user_param.callback = callback;
            user_param.nlsEvent = new NLS_EVENT_STRUCT();
            IntPtr toCppParam = Marshal.AllocHGlobal(Marshal.SizeOf(user_param));

            Marshal.StructureToPtr(user_param, toCppParam, false);
            NativeMethods.STOnSentenceEnd(request.native_request, onSentenceEnd, (IntPtr)toCppParam);
            return;
        }
예제 #3
0
 /// <summary>
 /// 会与服务端确认关闭, 正常停止实时音频流识别操作. 异步操作, 失败返回TaskFailed.
 /// </summary>
 /// <param name="request">
 /// CreateTranscriberRequest所建立的request对象.
 /// </param>
 /// <returns>成功则返回0, 否则返回-1.</returns>
 public int Stop(SpeechTranscriberRequest request)
 {
     return(NativeMethods.STstop(request.native_request));
 }
예제 #4
0
 /// <summary>
 /// 设置用户自定义ws阶段http header参数
 /// </summary>
 /// <param name="request">
 /// CreateTranscriberRequest所建立的request对象.
 /// </param>
 /// <param name="value">
 ///
 /// </param>
 /// <returns>成功则返回0, 否则返回-1.</returns>
 public int AppendHttpHeaderParam(SpeechTranscriberRequest request, string key, string value)
 {
     return(NativeMethods.STappendHttpHeaderParam(request.native_request, key, value));
 }
예제 #5
0
 /// <summary>
 /// 设置用户自定义参数
 /// </summary>
 /// <param name="request">
 /// CreateTranscriberRequest所建立的request对象.
 /// </param>
 /// <param name="value">
 /// value json格式字符串, 类似"{\"network\":{\"ip\":\"100.101.102.103\"}}".
 /// </param>
 /// <returns>成功则返回0, 否则返回-1.</returns>
 public int SetContextParam(SpeechTranscriberRequest request, string value)
 {
     return(NativeMethods.STsetContextParam(request.native_request, value));
 }
예제 #6
0
 /// <summary>
 /// 设置输出文本的编码格式
 /// </summary>
 /// <param name="request">
 /// CreateTranscriberRequest所建立的request对象.
 /// </param>
 /// <param name="value">
 /// value 编码格式 UTF-8 or GBK.
 /// </param>
 /// <returns>成功则返回0, 否则返回-1.</returns>
 public int SetOutputFormat(SpeechTranscriberRequest request, string value)
 {
     return(NativeMethods.STsetOutputFormat(request.native_request, value));
 }
예제 #7
0
 /// <summary>
 /// 设置session id.用于请求异常断开重连时,服务端识别是同一个会话
 /// </summary>
 /// <param name="request">
 /// CreateTranscriberRequest所建立的request对象.
 /// </param>
 /// <param name="value">
 /// value session id 字符串.
 /// </param>
 /// <returns>成功则返回0, 否则返回-1.</returns>
 public int SetSessionId(SpeechTranscriberRequest request, string value)
 {
     return(NativeMethods.STsetSessionId(request.native_request, value));
 }
예제 #8
0
 /// <summary>
 /// 销毁实时音频流识别对象.
 /// </summary>
 /// <param name="request">
 /// CreateTranscriberRequest所建立的request对象.
 /// </param>
 /// <returns></returns>
 public void ReleaseTranscriberRequest(SpeechTranscriberRequest request)
 {
     NativeMethods.NlsReleaseTranscriberRequest(request.native_request);
     return;
 }
예제 #9
0
 /// <summary>
 /// 设置Socket接收超时时间.
 /// </summary>
 /// <param name="request">
 /// CreateTranscriberRequest所建立的request对象.
 /// </param>
 /// <param name="value">
 /// 超时时间.
 /// </param>
 /// <returns>成功则返回0, 否则返回-1.</returns>
 public int SetTimeout(SpeechTranscriberRequest request, int value)
 {
     return(NativeMethods.STsetTimeout(request.native_request, value));
 }
예제 #10
0
 /// <summary>
 /// 设置vad阀值. 可选参数, 静音时长超过该阈值会被认为断句.
 /// </summary>
 /// <param name="request">
 /// CreateTranscriberRequest所建立的request对象.
 /// </param>
 /// <param name="value">
 /// vad阀值. 合法参数范围200~2000(ms), 默认值800ms.
 /// vad断句与语义断句为互斥关系, 不能同时使用. 调用此设置前, 请将语义断句setSemanticSentenceDetection设置为false.
 /// </param>
 /// <returns>成功则返回0, 否则返回-1.</returns>
 public int SetMaxSentenceSilence(SpeechTranscriberRequest request, int value)
 {
     return(NativeMethods.STsetMaxSentenceSilence(request.native_request, value));
 }
예제 #11
0
 /// <summary>
 /// 设置是否使用语义断句.
 /// </summary>
 /// <param name="request">
 /// CreateTranscriberRequest所建立的request对象.
 /// </param>
 /// <param name="value">
 /// 可选参数, 默认false.
 /// </param>
 /// <returns>成功则返回0, 否则返回-1.</returns>
 public int SetSemanticSentenceDetection(SpeechTranscriberRequest request, bool value)
 {
     return(NativeMethods.STsetSemanticSentenceDetection(request.native_request, value));
 }
예제 #12
0
 /// <summary>
 /// 设置是否在后处理中执行数字转换.
 /// </summary>
 /// <param name="request">
 /// CreateTranscriberRequest所建立的request对象.
 /// </param>
 /// <param name="value">
 /// 可选参数, 默认false.
 /// </param>
 /// <returns>成功则返回0, 否则返回-1.</returns>
 public int SetInverseTextNormalization(SpeechTranscriberRequest request, bool value)
 {
     return(NativeMethods.STsetInverseTextNormalization(request.native_request, value));
 }
예제 #13
0
 /// <summary>
 /// 设置是否在后处理中添加标点.
 /// </summary>
 /// <param name="request">
 /// CreateTranscriberRequest所建立的request对象.
 /// </param>
 /// <param name="value">
 /// 可选参数, 默认false.
 /// </param>
 /// <returns>成功则返回0, 否则返回-1.</returns>
 public int SetPunctuationPrediction(SpeechTranscriberRequest request, bool value)
 {
     return(NativeMethods.STsetPunctuationPrediction(request.native_request, value));
 }
예제 #14
0
 /// <summary>
 /// 设置是否返回中间识别结果.
 /// </summary>
 /// <param name="request">
 /// CreateTranscriberRequest所建立的request对象.
 /// </param>
 /// <param name="value">
 /// 可选参数, 默认false.
 /// </param>
 /// <returns>成功则返回0, 否则返回-1.</returns>
 public int SetIntermediateResult(SpeechTranscriberRequest request, bool value)
 {
     return(NativeMethods.STsetIntermediateResult(request.native_request, value));
 }
예제 #15
0
 /// <summary>
 /// 设置音频数据采样率.
 /// </summary>
 /// <param name="request">
 /// CreateTranscriberRequest所建立的request对象.
 /// </param>
 /// <param name="value">
 /// 目前支持16000, 8000. 默认是1600.
 /// </param>
 /// <returns>成功则返回0, 否则返回-1.</returns>
 public int SetSampleRate(SpeechTranscriberRequest request, int value)
 {
     return(NativeMethods.STsetSampleRate(request.native_request, value));
 }
예제 #16
0
 /// <summary>
 /// 直接关闭实时音频流识别过程.
 /// </summary>
 /// <param name="request">
 /// CreateTranscriberRequest所建立的request对象.
 /// </param>
 /// <returns>成功则返回0, 否则返回-1.</returns>
 public int Cancel(SpeechTranscriberRequest request)
 {
     return(NativeMethods.STcancel(request.native_request));
 }
예제 #17
0
 /// <summary>
 /// 发送语音数据.
 /// </summary>
 /// <param name="request">
 /// CreateTranscriberRequest所建立的request对象.
 /// </param>
 /// <param name="data">
 /// 语音数据.
 /// </param>
 /// <param name="dataSize">
 /// 语音数据长度(建议每次100ms左右数据).
 /// </param>
 /// <param name="type">
 /// ENCODER_NONE 表示原始音频进行传递, 建议每次100ms音频数据,支持16K和8K;
 /// ENCODER_OPU 表示以定制OPUS压缩后进行传递, 只支持20ms 16K16b1c;
 /// ENCODER_OPUS 表示以OPUS压缩后进行传递, 只支持20ms, 支持16K16b1c和8K16b1c.
 /// </param>
 /// <returns>
 /// 成功则返回0, 失败返回-1.
 /// 由于音频格式不确定, 传入音频字节数和传出音频字节数, 无法通过比较判断成功与否, 故成功返回0.
 /// </returns>
 public int SendAudio(SpeechTranscriberRequest request, byte[] data, UInt64 dataSize, EncoderType type)
 {
     return(NativeMethods.STsendAudio(request.native_request, data, dataSize, (int)type));
 }
예제 #18
0
 /// <summary>
 /// 设置是否开启nlp服务.
 /// </summary>
 /// <param name="request">
 /// CreateTranscriberRequest所建立的request对象.
 /// </param>
 /// <param name="value">
 /// 可选参数, 默认false.
 /// </param>
 /// <returns>成功则返回0, 否则返回-1.</returns>
 public int SetEnableNlp(SpeechTranscriberRequest request, bool value)
 {
     return(NativeMethods.STsetEnableNlp(request.native_request, value));
 }