精华内容
下载资源
问答
  • Utterance API

    2015-06-06 16:44:54
    表示一个完整音频数据的Utterance,在信号的传输中,每一个Utterance的前面有一个DataStartSignal类对象,Utterance其后有一个DataEndSignal类对象,用来表示一个Utterance的开始和结束。Utterance可为一个字或多个...
    <span style="font-size:24px;">public class Utterance
    表示一个完整音频数据的Utterance,在信号的传输中,每一个Utterance的前面有一个DataStartSignal类对象,Utterance其后有一个DataEndSignal类对象,用来表示一个Utterance的开始和结束。Utterance可为一个字或多个字?
    本类的属性:
    String name:用来标记此Utterance。给一个Utterance命名的名。
    ByteArrayOutputStream audioBuffer:用于存储一个Utterance的音频内容。字节数组输出流作为缓存。ByteArrayOutputStream的缓存区的长度是可能自动增大的。
    AudioFormat audioFormat:存储的音频的格式。如采样率等。
    本类的构造方法:
    public Utterance(String name, AudioFormat format):给一个Utterance的命名,设置存储音频格式,创建(new)一个新的audioBuffer。audioBuffer的初始长度为32个字节。
    本类的方法:
    1,	String getName():返回此Utterance的名字。即name
    2,	AudioFormat getAudioFormat():返回一个Utterance的存储的音频格式。
    3,	add(byte[] audio):把输入字节数组audio全部写入audioBuffer中即缓存中。此方法是线程安全的,即一次只能一个线程对其进行写。
    4,	byte[] getAudio():把Utterance中的内容放入字节数组中,即把audioBuffer转换成字节数组输出。即audioBuffer.toByteArray();
    5,	float getAudioTime():获得一个Utterance的持续时间。以秒为单位。audioBuffer的长度来除以采样率的字节表示(即一次采样需多少个字节)。
    6,	save(String fileName, AudioFileFormat.Type fileFormat):把一个Utterance的内容(即getAudio()获得的或audioBuffer)全部存入指定文件名,及文件格式(需java.sound支持的格式)的文件中。使用了AudioSystem.write方法。</span>
    

    展开全文
  • utterance generation bug

    2020-11-25 08:14:44
    <div><p>-kruse There seems to be a bug in the server generation of utterance permutations. For example the following: <p><code>"utterances": ['{to|} set temperature to {64-80|number}']...
  • Utterance is not started

    2020-12-09 08:52:40
    , line 1107: Utterance is not started rake aborted! Pocketsphinx::API::Error: Decoder#end_utterance failed with error code -1 /Users/polmiro/Development/isabella/lib/listener.rb:29:in `listen'...
  • How to enable utterance?

    2020-12-26 16:33:45
    <div><p>Seems already support utterance, how to enable it and configging it? Any tutorials?</p><p>该提问来源于开源项目:xianmin/hugo-theme-jane</p></div>
  • <div><p>Firefox will not schedule an utterance twice so we need to create a new utterance every time something is to be spoken. Closes #4</p><p>该提问来源于开源项目:IDMNYU/p5.js-speech</p></div...
  • <div><p>Hi, I would like to know what is the maximum number of utterance for an intent. And is there a way to upgrade the number of utterance? Should I upgrade my service? </p><p>该提问来源于开源项目&...
  • <p>b) Before going through the current code that figures out best_intent, loop through the Skills in this list and call skill.Converse(utterance). If one returns True, then they have handled the ...
  • <p><em>I have existing trained intent, that should return utterance. Problem is that some sentences are ignored, others are recognized. These sentences worked after creation of intent, later when more...
  • <p>Depending on use-case, there might be a need to maintain tone history for each user utterance or not. The earlier code version, by default always stored tone history. This update adds a flag "...
  • <p>utterance remainder now is parsed word by word instead of just replacing the keywords in the string <p><a href=...
  • <p>For example, one user created an utterance/intent for "What is your favorite color?". Typing the exact utterance used to return ~.9 score. Now it returns ~.3 score. <p>What is the cause of ...
  • <div><p>Similar to e2e_asr, this is simple implementation of recognize_batch function in e2e_asr_transformer, which could serve as a temporary solution of Transformer gpu utterance batch decoding ...
  • <div><p>I noticed that RNN based model has the <strong>utterance batch</strong> decoding method implemented in ...<p>I understand that more advanced interface for beam search has been moved to ...
  • <div><p>How can I normalize a <code>path_score</code> (like in <code>Pocketsphinx::Decoder::Hypothesis) of an utterance to a relative confidence probability?</p><p>该提问来源于开源项目:...
  • generates empty user utterance for some turns. <p>Here is a sample conversation of user/system with user utterance empty: <pre><code> user: I need a restaurant . It just needs to be expensive . I am...
  • <p>Is it possible to add utterance support to <code>launch(), maybe it is like <pre><code> await alexa.launch("do some work"); </code></pre> <p>to simulate a user say "Alexa, ask {...
  • issue-2755 - Ability to play short error sound instead of long error utterance <p>==== Tech Notes ==== Add a new method parameter in the speak method for skills to ...
  • <div><p>I want to set utterence on my blog <p>I did three things like below <p>1.themes/tranquilpeak/layout/_partial/post/utterances.ejs <pre><code> <...utterance/utterances</p></div>
  • However, this method only does recognition of a single utterance, but the files I wish to transcribe can contain multiple utterances. <p>What is the recommended approach for synchronous/blocking ...
  • Hexo NexT主题集成utterance评论系统

    千次阅读 2019-10-17 10:16:21
    使用Hexo的Next主题搭建的...这里讲解集成另外一种评论系统:utterance(https://utteranc.es/) 其配置非常简单,支持Github账号登录后才能评论。原理就是使用了Github的Issues功能来保存评论。 配置步骤 创建Gi...

    使用Hexo的Next主题搭建的博客内置了很多种评论系统,如:gitalk,changyan等。

    这里讲解集成另外一种评论系统:utterancehttps://utteranc.es/

    其配置非常简单,支持Github账号登录后才能评论。原理就是使用了Github的Issues功能来保存评论。

    配置步骤

    创建Github仓库

    上面提到,utterance使用Github保存评论,那我们就需要创建一个repository专门保存评论。

    repository名称可以根据自己喜好取,这个后面会用到。

    授权

    用户在博客页面上输入评论,utterance拿到这个评论后,自动的提交到上面刚创建仓库的Issues里。

    所以我们需要授权utterance应用能访问仓库的Issues。

    点击链接: https://github.com/apps/utterances ,如下图所示:

    主题配置

    一,在主题的配置文件_config.yml文件中,加入如下配置:

    位置可以放到其它评论配置的后面

    # 整合utterance评论
    utterance:
      enable: true
      #仓库名字,格式:你的用户ID/仓库名称,如:zhangsan/utterance_repo
      repo: 
      #主题
      theme: github-light
      #映射配置
      issue_term: pathname
    

    二,在主题的layout\_third-party\comments文件夹下,创建utterance.swig文件,添加如下内容:

    <script type="text/javascript">
        (function() {
            // 匿名函数,防止污染全局变量
            var utterances = document.createElement('script');
            utterances.type = 'text/javascript';
            utterances.async = true;
            utterances.setAttribute('issue-term','{{ theme.utterance.issue_term }}')
            utterances.setAttribute('theme','{{ theme.utterance.theme }}')
            utterances.setAttribute('repo','{{ theme.utterance.repo }}')
            utterances.crossorigin = 'anonymous';
            utterances.src = 'https://utteranc.es/client.js';
            // content 是要插入评论的地方
            document.getElementById('gitment-container').appendChild(utterances);
        })();
    </script>
    

    三,还是刚才那个文件夹,找到index.swig文件,加入如下配置:

    {% elif theme.utterance.enable %}
      {% include 'utterance.swig' %}
    

    注意加在endif后面,如:

    四,以上只是添加了脚本,还需添加comment样式。找到layout\_partials\comments.swig文件。在最后加入内容:

      {% elif theme.utterance.enable %}
        <div class="comments" id="comments">
            <div id="gitment-container"></div>
        </div>
    

    如:

    总结

    以上就是整个集成utterance评论的流程,按照流程一步一步来应该是没问题的。

    展开全文
  • <p>How can I handle synonyms while parsing the utterance into logical form? <p>For example, if the knowledge graph has a relation named "Donald-sex-Male" and the utterance asks for the "...
  • If the user ignores the buttons of a ChoicePrompt and asks another (totally different) question, the bot may recognizes ordinals/numbers in the utterance and handles that as if the user made a choice....
  • Full screen utterance

    2020-12-08 20:39:01
    <div><p>Users want to make videos full screen with utterances like: <p>"full screen video" "make full screen" "full screen"</p><p>该提问来源于开源项目:...
  • <ul><li>Add personName as an Entity</li><li>Use the utterance "Create a meeting with John and Ben"</li><li>Use the utterance "Create a meeting with Ben and John"</li></ul> <h3>Any log ...
  • <p>Is the size of the output (the sequence of chars) of the model a deterministic function of the number of frames of the utterance? <p>Does the LSTM adapt the size of the output char sequence during ...
  • 论文名称:SUMBT: Slot-Utterance Matching for Universal and Scalable Belief Tracking Abstract 本文的模型叫做SUMBT,全称slot-utterance matching belief tracker,槽-话语匹配的对话状态跟踪器。 根据多...

    论文名称:SUMBT: Slot-Utterance Matching for Universal and Scalable Belief Tracking

    Abstract

    本文的模型叫做SUMBT,全称slot-utterance matching belief tracker,槽-话语匹配的对话状态跟踪器。

    根据多领域DST简史的调研,SUMBT属于fixed-vocabulary based DST方法,这种方法说白了就是基于预定义的本体和候选槽值列表,寻找合适的value。那么SUMBT好在哪呢?

    以往的方法,建模的跟踪器都是领域/槽位依赖的,所以欠缺领域本体设置的灵活性。

    本文把这些以往的方法统称为slot-dependent methods。

    而根据这篇论文的题目,可以看出这个模型自我标榜的就是Universal 和Scalable。

    SUMBT模型的思想简单归纳为两点:

    1. 通过基于上下文语义向量(contextual semantic vectors)的注意力机制学习出现在话语中的domain-slot-types与slot-values之间的关系。

    2. 模型以一种非参数(non-parametric)的方式预测slot-value标签

    好下面进入具体内容。

    一些名词:

    utterance:话语。包括用户话语与系统话语。

    Introduction

    fixed-vocabulary based DST方法的一个优化方向,就是解决Scalable(可扩展性)问题,即灵活地追加新domain、slot或value的问题。

    传统的基于统计学的DST(statistical belief trackers),对lexical and morphological variations(词汇和词形变化)很脆弱,因为它们依赖与人手动构造的语义字典

    后来深度学习兴起,基于神经的DST(neural belief trackers)即NBT出现了,它们通过学习神经语义词表示大幅提高了性能。

    但是,可扩展性调整依然没有被解决。以往的方法,要么对每一个domain/slot分别建模,要么难以集成本体中未定义的新value。

    本文的模型标榜的就是Universal 和Scalable,所有domain和slot类型都靠一个跟踪器处理,从而实现了所谓的domain and slot-independent。

    本文吸收了机器阅读理解方面的成果,把domain-slot type看做问题,把slot-value pair看做回答,从用户与系统的话语中寻找合适的回答(假定话语中存在)。

    用户与系统的话语通过BERT编码,此处BERT提供了句子们的上下文语义表示(contextualized semantic representation of sentences)。

    domain-slot type和把slot-values也通过BERT编码。

    然后,SUMBT学习the way where to attend(啥意思?)。

    模型基于一个特定指标以一种非参数方式预测slot-value label,这使得模型的结构是domain and slot-independent的。

    最后,一个单一的SUMBT就能处理任何domain-slot type和把slot-values,并且使用了多领域多槽位之间共享的信息。

    在这里插入图片描述

    SUMBT

    这一部分详细介绍本文DST的结构。

    SUMBT的结构如图1。红字是一个对话例子,问题是restaurant-food,回答是modern European。UtU_tqsq^sytvy^v_t是编码器输出向量,

    由图1可看出SUMBT分成四个部分:

    • BERT encoders:灰色(BERT_sv_)和蓝色部分(BERT),把所有该encode的东西(话语和本体)encode。
    • a slot-utterance matching network:红色方框,多头注意力机制
    • a belief tracker:黄色方框
    • a nonparametric discriminator:顶部虚线

    Encoders

    此处的编码器,学名Contextual Semantic Encoders,因为它们提供了句子们的上下文语义表示(contextualized semantic representation of sentences),而不是简单的静态词向量。

    考虑domain-slot-types s, 轮次t下的slot-values vtv_t,输出向量分别是xsx^sxtvx^v_t编码输出成qsq^sytvy^v_t。在训练中固定BERT_sv_的权重,以确保输出上下文向量的domain and slot-independence,从而能够对新领域scalable。

    对于系统话语(n个word),用户话语(m个word),BERT把每个word $\omega 编码成上下文语义词向量u[SEP],一个用户系统话语对通过一个[SEP]标志符拼接,编码成矩阵U_t$。

    Slot-Utterance Matching

    注意力机制是关键。encoders输出的domain-slot type 向量qsq^s,q取自query。模型把这个query与上下文语义向量u在每个可能word上匹配,然后计算注意力分数。这里,我们使用多头注意力。

    输入qsq^sUtU_t,输出attended context vector htsh^s_t

    Belief Tracker

    这里是DST,很常规的方法。随着对话继续,对话状态不仅由当前turn决定,也由以往对话历史决定。

    将上一步获取的参与上下文向量(attended context vector)喂入一个RNN:

    dts=RNN(dt1s,hts)d^s_t=RNN(d^s_{t-1}, h^s_t)

    得到了很接近target slot-value’s semantic vector的向量。

    既然BERT中,输出被一个正则化层正则化,那么本文就业进行一次正则化,以增进训练收敛。

    Training Criteria

    a nonparametric discriminator,这是一个分类器,我们给出的模型需要通过训练学习最小化target slot-value’s semantic vector与上一步获取的输出向量的差异。

    对于一个槽值vtv_t的概率分布p,计算方法大致就是一种距离度量,每一个turn的每一个slot-types的p对数似然函数的加和就是目标函数L,从而对全部domain-slot-types一起训练,模型学习到slot-types与slot-types的一般关系。

    Experimental Setup & Results

    数据集是woz 2.0和multiwoz。前者包含一个领域,三种槽位。后者包含七个领域,35种槽位。

    本文设计了3个基线模型:BERT+RNN,BERT+RNN+ontology,以及Slot-dependent SUMBT。

    • BERT+RNN:BERT指contextual semantic encoder,RNN指RNN-based
      belief tracker。
    • BERT+RNN+ontology:ontology指ontology-utterance matching network
    • Slot-dependent SUMBT:结构和SUMBT完全相同,但是模型对每个slot分别训练,所以是Slot-dependent。

    网络细节什么的就略过了。

    Joint Accuracy

    在这里插入图片描述

    WOZ 2.0数据集上的性能对比,可见三种基线模型彼此几乎没有区别,并且都比以前的模型好。而本文的SUMBT达到了0.91的联合准确率,效果拔群。可见通过一个单一模型利用普遍性知识是很好的。

    multiwoz数据集上的性能就不上图了,反正宣称SOTA就是了。

    Attention visualizations

    在这里插入图片描述
    这是一个注意力权重分析的例子,对话共三轮,每轮的两个柱状图分别是given slots。可以看出attention是有作用的。

    展开全文
  • Higru Hierarchical gated recurrent units for utterance-level emotion recognition Wenxiang Jiao, Haiqin Yang, Irwin King, Michael R. Lyu: HiGRU: Hierarchical Gated Recurrent Units for Utterance-Level ...

    Higru Hierarchical gated recurrent units for utterance-level emotion recognition

    Wenxiang Jiao, Haiqin Yang, Irwin King, Michael R. Lyu:
    HiGRU: Hierarchical Gated Recurrent Units for Utterance-Level Emotion Recognition. NAACL-HLT (1) 2019: 397-406
    

    Abstract

    在本文中, 我们解决了对话系统中话语级情感识别的三个挑战:

    1. 在不同的上下文中相同的单词可以表达不同的情感
    2. 有些情绪很少出现在一般的对话中
    3. 远程上下文信息很难被有效地捕获.

    因此提出了一个分层GRU框架HiGRU, 其使用低层次的GRU来建模单词级别的输入, 使用高层次的的GRU来捕获话语级别嵌入的上下文. 此外, 我们将框架推广到两个变体, 带有单个特征融合的HiGRU(HiGRU-f)以及带有自注意力和特征融合的HiGRU(HiGRU-sf), 因此单词级别或话语级别的单个输入和长距离的上下文信息可以被充分的利用.

    1 Introduction

    . . . . . .

    在这里插入图片描述

    本文关注文本类型的对话系统, 因为文本特征在音频和视频特征上占主导地位. 在话语级情绪识别中, 话语是呼吸或停顿所限制的言语单位, 它的目标是为对话中的每一个话语标注指示情感.

    在本文中, 我们要解决三个挑战, 首先, 在不同的上下文中相同的单词可以表达不同的情感. 例如图一所示, 单词’okay’可以分别表达anger, neutral, joy三种不同的情感.强烈的情绪, 如喜悦和愤怒, 可以通过词语后的“!”或“?”来表示. 为了精确的识别说话者的情感,需要充分的探索对话的上下文信息.第二,有些情绪很少出现在一般的对话中. 例如, 人们通常会保持镇静并表现出中性的情绪, 而仅在某些特定情况下, 他们才会表现出强烈的情绪, 例如愤怒或恐惧. 因此, 我们需要对较少见的情绪保持敏感, 同时减轻较常见的情绪的影响. 第三, 远程上下文信息很难被有效地捕获. 尤其是当测试集中的话语/对话的长度比训练集中的长时.

    为解决这些挑战, 本文提出了分层的GRU框架(HiGRU)来进行话语级别的情感识别. 更具体地说, HiGRU由两个级别的双向GRU组成, 低级别的GRU来建模每一个话语的单词序列来产生单个话语的嵌入, 高级别的GRU捕获话语的序列关系和上下文关系. 我们更进一步将所提出的模型推广为两个变体, 带有单个特征融合的HiGRU(HiGRU-f)以及带有自注意力和特征融合的HiGRU(HiGRU-sf). 在前者中, 单个输入, 即低级别GRU的单词嵌入和高级别GRU中的单个话语嵌入分别与隐藏状态连接起来来产生与上下文有关的单词和话语嵌入. 在后者中, 将一个自注意力层置于GRU的隐藏状态之上来学习长距离的上下文嵌入, 之后上下文嵌入与原来的单个嵌入和隐藏状态进行连接来生成与上下文有关的单词或话语嵌入. 最终与上下文有关的话语嵌入被送入全连接层来判断对应的情感. 为了缓解数据不平衡的问题, 采用 (Khosla, 2018) 的方法来通过最小化加权分类交叉熵来训练本文的模型.

    本文的贡献总结如下:

    • 提出了一个HiGRU框架来更好地学习单个话语嵌入和话语语境信息, 从而更准确地识别情感.
    • 提出了两个HiGRU的变体, HiGRU-f和HiGRU-sf, 分别充分的整合单个单词/话语级别的信息以及长距离的上下文信息
    • 本文提出的模型仅使用文本特征, 实验证明表现优于使用三种模态特征的CMN.

    2 Related Work

    . . . . . .

    Contextual Information Extraction.

    Representation Enrichment.先前的方法使用CNN提取文本特征, 但CNN并不能很好地捕捉每个话语中的上下文信息.

    3 Approach

    定义1 话语级别的情感识别.

    • D={Di}i=1L\mathcal{D}=\{D_i\}_{i=1}^L,为对话集合,其中LL对话数目
    • Di={(uj,sj,cj)}j=1NiD_i=\{(u_j,s_j,c_j)\}_{j=1}^{N_i},表示在每一个对话DiD_i中的NiN_i个话语构成的序列
      • 其中uju_j由带有特定情感cjCc_j\in\mathcal{C}的说话者sjSs_j\in\mathcal{S}说出
    • S\mathcal{S}说话者集合
    • C\mathcal{C}所有感情的集合,比如 anger, joy, sadness, neutra

    目标是训练模型来用C\mathcal{C}中的一种情感来尽可能准确的标记每一个话语

    在这里插入图片描述

    3.1 HiGRU: Hierarchical GRU

    HiGRU由两个级别的双向GRU组成, 低级别的GRU来建模每一个话语的单词序列来产生单个话语的嵌入, 高级别的GRU通过对对话中的话语序列建模来学习上下文相关的话语嵌入.

    • Individual Utterance Embedding.对于DiD_i中的第jj个话语,uj={wk}k=1Mju_j= \{w_k\}_{k=1}^{M_j},其中MjM_j是话语uju_j中的单词数目. 对应的单个单词嵌入序列{e(wk)}k=1Mj\{e(w_k)\}_{k=1}^{M_j}被送入低级别的双向GRU中来在两个相反的方向学习单个话语嵌入:
      hk=GRU(e(wk),hk1)(1)\overrightarrow{h_k}=GRU(e(w_k),\overrightarrow{h_{k-1}})\tag{1}
      hk=GRU(e(wk),hk+1)(2)\overleftarrow{h_k}=GRU(e(w_k),\overleftarrow{h_{k+1}})\tag{2}
      两个隐藏状态被连接为hs=[hk,hk]h_s=[\overrightarrow{h_k},\overleftarrow{h_k}],并通过在一个线性变换上的tanh激活函数来产生wkw_k的与上下文有关的单词嵌入:
      ec(wk)=tanh(Wwhs+bw)(3)e_c(w_k)=tanh(W_w\cdot h_s+b_w)\tag{3}

      之后通过话语中上下文相关的单词嵌入之上的最大池化来获得单个话语嵌入:
      e(uj)=maxpool({ec(wk)}k=1Mj)(4)e(u_j)=maxpool(\{e_c(w_k)\}_{k=1}^{M_j})\tag{4}

    • Contextual Utterance Embedding.对于第ii个对话Di={(uj,sj,cj)}j=1ND_i=\{(u_j,s_j,c_j)\}_{j=1}^N,所学到的单个话语嵌入{e(uj)}j=1Nj\{e(u_j)\}_{j=1}^{N_j}被送入高级别的双向GRU来捕获对话中话语的序列关系和上下文关系:
      Hj=GRU(e(uj),Hj1)(5)\overrightarrow{H_j}=GRU(e(u_j),\overrightarrow{H_{j-1}})\tag{5}
      Hj=GRU(e(uj),Hj+1)(6)\overleftarrow{H_j}=GRU(e(u_j),\overleftarrow{H_{j+1}})\tag{6}
      此处,为了与低级别的GRU的隐藏状态hkh_k进行区分,高级别GRU的隐藏状态被表示为HjRd2H_j\in R^{d_2}.因此可以通过下式获得上下文相关的话语嵌入:
      ec(uj)=tanh(WuHs+bu)(7)e_c(u_j)=tanh(W_u\cdot H_s+b_u)\tag{7}
      其中Hs=[Hj,Hj]H_s=[\overrightarrow{H_j},\overleftarrow{H_j}],因为情感是在话语级别进行识别的,所学到的上下文相关的话语嵌入ec(uj)e_c(u_j)被直接送入全连接层(FC)然后跟上一个softmax函数来判断对应的情感标签:
      y^=softmax(Wfcec(uj)+bfc)(8)\hat{y}=softmax(W_{fc}\cdot e_c(u_j)+b_{fc})\tag{8}

    3.2 HiGRU-f: HiGRU + Individual Features Fusion

    原型HiGRU包含两个主要的问题:

    1. 单个单词/话语嵌入被层层的叠加稀释了
    2. 高级别的GRU倾向于从占多数的情感中获取更多上下文信息,会降低模型的整体性能

    为解决上述两个问题,提出使用GRU的隐藏状态与单个的单词/话语嵌入融合,来加强每一个单词/话语嵌入在其上下文相关的嵌入中的信息. 此变体名为HiGRU-f,表示带有单个特征融合的HiGRU.因此低级别的GRU可以维持单个单词嵌入并且高级别的GRU可以缓解占多数的情感的影响并获得对于不同情感的更加精确的话语表示.具体来说,与上下文相关的嵌入的更新为:
    ec(wk)=tanh(Wwhsf+bw)(9)e_c(w_k)=tanh(W_w\cdot h_s^f+b_w)\tag{9}
    ec(uj)=tanh(WuHsf+bu)(10)e_c(u_j)=tanh(W_u\cdot H_s^f+b_u)\tag{10}
    其中hsf=[hk;e(wk);hk],Hsf=[Hj,e(uj),Hj]h_s^f=[\overrightarrow{h_k};e(w_k);\overleftarrow{h_k}],H_s^f=[\overrightarrow{H_j},e(u_j),\overleftarrow{H_j}]

    3.3 HiGRU-sf: HiGRU + Self-Attention andFeature Fusion

    另一个挑战是从长序列中提取上下文信息,特别是测试集中的序列的比训练集中的序列更长的情况.为了完全利用全局上下文信息,我们将一个自注意力层置于HiGRU的隐藏状态之上并将注意力输出与单个的单词/话语嵌入进行融合,来学习上下文相关的单词/话语表示.因此,此变体称为HiGRU-sf,表示带有自注意力和特征融合的HiGRU.

    特别地,我们将自注意力层分别应用于前项和后向的隐藏状态之上,来分别产生左上下文嵌入hkl(Hjl)h_k^l(H_j^l) 和右上下文嵌入hkr(Hjr)h_k^r(H_j^r).这允许我们在当前时间步的两个相反的方向上收集唯一的全局上下文信息并通过下式产生对应的与上下文相关的嵌入:
    ec(wk)=tanh(Wwhssf+bw)(11)e_c(w_k)=tanh(W_w\cdot h_s^{sf}+b_w)\tag{11}
    ec(uj)=tanh(WuHssf+bu)(12)e_c(u_j)=tanh(W_u\cdot H_s^{sf}+b_u)\tag{12}
    其中hssf=[hkl;hk;e(wk);hk;hkr],Hssf=[Hkl;Hj,e(uj),Hj;Hkr]h_s^{sf}=[h_k^l;\overrightarrow{h_k};e(w_k);\overleftarrow{h_k};h_k^r],H_s^{sf}=[H_k^l;\overrightarrow{H_j},e(u_j),\overleftarrow{H_j};H_k^r]

    在这里插入图片描述

    Self-Attention自注意力机制是一种计算一个输入与其他所有输入的关系的有效的非周期性架构并且已经被成功的应用到各种NLP应用中,图三显示了在GRU的前向隐藏状态之上学习左上下文嵌入hklh_k^l的点乘SA.注意力矩阵中的每一个元素通过下式计算:
    f(hk,hp)={hkThpif  k,pMj  otherwise(13)f(\overrightarrow{h_k},\overrightarrow{h_p})=\begin{cases} \overrightarrow{h_k}^T\overrightarrow{h_p}& if\; k,p\leq M_j\\ -\infin&\;otherwise \tag{13}\end{cases}
    然后使用注意力掩码来消除序列输入和paddings之间的内部注意力. 在每一步中,对应的左上下文hklh_k^l之后被通过所有前向状态的加权求和来计算:
    hkl=p=1Mjαkphp,    αkp=exp(f(hk,hp))p=1Mjexp(f(hk,hp))(14)h_k^l=\sum\limits_{p=1}^{M_j}\alpha_{kp}\overrightarrow{h_p},\;\;\alpha_{kp}=\dfrac{\exp(f(\overrightarrow{h_k},\overrightarrow{h_p}))}{\sum\limits_{p'=1}^{M_j}\exp(f(\overrightarrow{h_k},\overrightarrow{h_{p'}}))}\tag{14}
    其中αkp\alpha_{kp}是被包含在hklh_k^l中的hp\overrightarrow{h_p}的权重.右上下文hkrh_k^r可以通过类似方式求出.

    3.4 Model Training

    最小化所有对话中每一个话语的加权分类交叉熵来优化模型参数:
    loss=1i=1LNii=1Lj=1Niω(cj)c=1Cyiclog2(y^ic)(15)loss=-\dfrac{1}{\sum_{i=1}^LN_i}\sum\limits_{i=1}^L\sum\limits_{j=1}^{N_i}\omega(c_j)\sum\limits_{c=1}^{|\mathcal{C}|}y_i^c\log_2(\hat{y}_i^c)\tag{15}

    类似于(Khosla,2018),使损失权重ω(cj)\omega(c_j)与类别cjc_j中训练话语的数目成反比例,表示为IcI_c,即对占多数的类别分配一个较大的损失权重,以缓解数据不平衡问题.不同之处在于,本文添加了一个常数α\alpha来调整分布的平滑性.
    1ω(cj)=Icαc=1CIcα(16)\dfrac{1}{\omega(c_j)}=\dfrac{I_c^\alpha}{\sum_{c'=1}^{|\mathcal{C}|}I^\alpha_{c'}}\tag{16}

    4 Experiments

    4.1 Datasets

    • IEMOCAP
    • Friends
    • EmotionPush

    在这里插入图片描述

    Data Preprocessing.通过如下步骤处理数据集

    1. 这些话语被分解成符号,每个单词都是小写的
    2. 除’?‘和’!'外的所有的non-alphanumerics被删除,因为这两个符号通常表现出强烈的情感
    3. 根据提取的单词和符号构建字典,遵循(Poria et al., 2017)的方法,使用在谷歌新闻的1000亿个单词上训练的公开可用的300维word2vec向量来表示tokens。对于不在word2vec字典中出现tokens,通过随机产生的向量来初始化。

    4.2 Evaluation Metrics

    两个评估标准:

    • WA: 加权精确度
    • UWA: 不加权精确度

    4.3 Compared Methods

    • bcLSTM
    • CMN
    • SA-BiLSTM
    • CNN-DCNN
    • bcLSTM∗ and bcGRU

    4.4 Training Procedure

    4.5 Main Results

    在这里插入图片描述
    在这里插入图片描述

    4.6 Discussions

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    展开全文
  • <p>Connect a skill to the VA and then check the Dispatcher, the skill has to have multiple utterance sources, but in the manifest of the skill we want to add just one of them, this means that in the ...
  • <p>It works a lot better but I still run into trouble with getting the beginning of a new utterance when we call <code>asr.finalize_decoding()</code>. If you look into line 124 of the script: <code>...
  • The utterance "unter der Woche" is a common utterance in the German language. <p><strong>Describe the solution you'd like This utterance should be mapped to the date range from Monday to ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 660
精华内容 264
关键字:

utterance