当前位置: 首页>>代码示例>>C++>>正文


C++ shared_ptr::AddSequence方法代码示例

本文整理汇总了C++中shared_ptr::AddSequence方法的典型用法代码示例。如果您正苦于以下问题:C++ shared_ptr::AddSequence方法的具体用法?C++ shared_ptr::AddSequence怎么用?C++ shared_ptr::AddSequence使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在shared_ptr的用法示例。


在下文中一共展示了shared_ptr::AddSequence方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: reader

    /*virtual*/ void MLFBinaryIndexBuilder::Populate(shared_ptr<Index>& index) /*override*/
    {
        m_input.CheckIsOpenOrDie();

        index->Reserve(filesize(m_input.File()));

        BufferedFileReader reader(m_bufferSize, m_input);

        if (reader.Empty())
            RuntimeError("Input file is empty");
   
        if (!m_corpus)
            RuntimeError("MLFBinaryIndexBuilder: corpus descriptor was not specified.");
        vector<char> buffer(MAX_UTTERANCE_LABEL_LENGTH);

        // Validate file label
        reader.TryReadBinarySegment(3, buffer.data());
        std::string mlfLabel(buffer.data(),3);
        if (mlfLabel != MLF_BIN_LABEL)
            RuntimeError("MLFBinaryIndexBuilder: MLF binary file is malformed.");

        //Validate MLF format version
        reader.TryReadBinarySegment(sizeof(short), buffer.data());
        short modelVersion = *(short*)buffer.data();

        // Iterate over the bin MLF
        string uttrKey;
        while (readUtteranceLabel(modelVersion, reader, buffer, uttrKey))
        {
            auto uttrId = m_corpus->KeyToId(uttrKey);

            reader.TryReadBinarySegment(sizeof(uint), buffer.data());
            uint uttrFrameCount = *(uint*)buffer.data();

            auto sequenceStartOffset = reader.GetFileOffset();

            // Read size of this uttrs
            reader.TryReadBinarySegment(sizeof(ushort), buffer.data());
            ushort uttrSamplesCount = *(ushort*)buffer.data();

            // sample count, senone/count pairs
            size_t uttrSize =sizeof(ushort) + uttrSamplesCount * 2 * sizeof(ushort);

            IndexedSequence sequence;
            sequence.SetKey(uttrId)
                        .SetNumberOfSamples(uttrFrameCount)
                        .SetOffset(sequenceStartOffset)
                        .SetSize(uttrSize);
            index->AddSequence(sequence);
            reader.SetFileOffset(reader.GetFileOffset() + uttrSamplesCount * 2 * sizeof(ushort));
        }
    }
开发者ID:burhandodhy,项目名称:CNTK,代码行数:52,代码来源:MLFBinaryIndexBuilder.cpp


注:本文中的shared_ptr::AddSequence方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。