In Force

ITU Implementers’ Guide

International Telecommunications Union
ITU-T
Implementers’ Guide P.863 Implementers' Guide
(05/2018)
Telecommunication
Standardization Bureau
of ITU
Series P: Terminals and Subjective and Objective Assessment Methods Methods for objective and subjective assessment of speech quality Implementers' guide for P.863

International Telecommunication Union

Place des Nations 1211 Geneva 20 Switzerland
itumail@itu.int
www.itu.int





Summary

This document contains all updates submitted up to and including those at Study Group 12 meeting in May 2018.

This document was approved by ITU-T Study Group 12 on 10 May 2018 and is the initial version of this implementers' guide.

Change log

2018-05Initial version

Editors:Jens Berger
Rohde Schwarz, Switzerland
E-mail: jens.berger@rohde-schwarz.com
Joachim Pomy
OPTICOM GmbH, Germany
E-mail: consultant@joachimpomy.de

Implementers’ Guide ITU-T P.863 Implementers' Guide

Implementers' guide for P.863

1.  Scope

This guide resolves defects in the following categories:

  • editorial errors

  • technical errors, such as omissions and inconsistencies

  • ambiguities

In addition, the implementers' guide may include explanatory text found necessary as a result of interpretation difficulties apparent from the defect reports.

This guide will not address proposed additions, deletions or modifications to the Recommendations that are not strictly related to implementation difficulties in the above categories. Proposals for new features should be made through contributions to ITU-T.

2.  References

The following ITU-T Recommendations and other references contain provisions which, through reference in this text, constitute provisions of this Recommendation. At the time of publication, the editions indicated were valid. All Recommendations and other references are subject to revision; users of this Recommendation are therefore encouraged to investigate the possibility of applying the most recent edition of the Recommendations and other references listed below. A list of the currently valid ITU-T Recommendations is regularly published. The reference to a document within this Recommendation does not give it, as a stand-alone document, the status of a Recommendation.

[ITU‑T P.863 (03/2018)]

3.  Introduction

This implementers' guide is a compilation of reported defects for the version 2018-03 of [ITU-T P.863 (03/2018)]. In this edition of the guide, reported defects identified as of 2018-05 are given for:

P.863

The guide must be read in conjunction with Recommendation P.863 to serve as an additional source of information for implementers. The changes, clarifications and corrections defined herein are expected to be included in future versions of the affected Recommendations.

4.  Defect resolution procedure

Upon discovering technical defects with any components of the texts covered by this implementers' guide, please provide a written description directly to the editors of the affected Recommendation(s) with a copy to the respective Rapporteur (See contacts above on page iii). The template for a defect report is located at the end of this guide. Return contact information should also be supplied so a dialogue can be established to resolve the matter and an appropriate reply to the defect report can be conveyed. This defect resolution process is open to any interested party. Formal membership in the ITU is not required to participate in this process.

5.  Nomenclature

In addition to traditional revision marks, the following marks and symbols are used to indicate to the reader how changes to the text of a Recommendation should be applied:

SymbolDescription
[Begin Correction]Identifies the start of revision marked text based on extractions from the published Recommendations affected by the correction being described.
[End Correction]Identifies the end of revision marked text based on extractions from the published Recommendations affected by the correction being described.
…​Indicates that the portion of the Recommendation between the text appearing before and after this symbol has remained unaffected by the correction being described and has been omitted for brevity.
--- SPECIAL INSTRUCTIONS --- {instructions}Indicates a set of special editing instructions to be followed.

6.  Technical and editorial corrections to Recommendation P.863

6.1.  Annex B, TempAlignment.pdf

Missing statement, which rendered part of the surrounding code useless.

--- SPECIAL INSTRUCTIONS --- Insert at line 2655

[Begin Correction]

Done = true

[End Correction]

6.2.  Annex B, TempAlignment.pdf

The fix from clause 6.1 requires setting larger search ranges for simple delay search problems. The old bounds were not used before due to the bug.

--- SPECIAL INSTRUCTIONS --- Replace lines 3940 and 3941:

[Begin Correction]

--- SPECIAL INSTRUCTIONS --- Old Description

mpReparsePoints[r].MinDelayVarInSamples = -2*WorstResolutionInSamples
mpReparsePoints[r].MaxDelayVarInSamples = 2*WorstResolutionInSamples

--- SPECIAL INSTRUCTIONS --- New Description

mpReparsePoints[r].MinDelayVarInSamples = -4*WorstResolutionInSamples
mpReparsePoints[r].MaxDelayVarInSamples = 4*WorstResolutionInSamples

[End Correction]

6.3.  Annex B, TempAlignment.pdf

The fix from clause 6.1 revealed that before combining sections of constant delay, it was not sufficiently checked that both sections are either active speech or silence.

--- SPECIAL INSTRUCTIONS --- Modify lines 5092 to 5102:

[Begin Correction]

--- SPECIAL INSTRUCTIONS --- Old Description

for (utt=0 utt<NumberOfUtterances-1 utt++)
      {
      if (pStartSampleUtterance[utt+1]-pStopSampleUtterance[utt] < 0.1*mProcessData.mSamplerate)
           {
            bool IsInsideActiveSection = true
            while(LastUsedReparsePoint<NumReparsePoints-1 && pStartSampleUtterance[utt+1]>ReparsePoints[LastUsedReparsePoint].Deg.End)
                  LastUsedReparsePoint++
            if (pStartSampleUtterance[utt+1]<ReparsePoints[LastUsedReparsePoint].Deg.Start)
                IsInsideActiveSection = false

                if ((!IsInsideActiveSection &&

--- SPECIAL INSTRUCTIONS --- New Description

for (utt=0 utt<NumberOfUtterances-1 utt++)
     {
        bool IsInsideActiveSection1 = true
        bool IsInsideActiveSection2 = true
        while(LastUsedReparsePoint<NumReparsePoints-1 && pStartSampleUtterance[utt]>ReparsePoints[LastUsedReparsePoint].Deg.End)
            LastUsedReparsePoint++
        if (pStartSampleUtterance[utt]<ReparsePoints[LastUsedReparsePoint].Deg.Start && pStopSampleUtterance[utt]<ReparsePoints[LastUsedReparsePoint].Deg.Start)
            IsInsideActiveSection1 = false

        int ReparsePoint2 = LastUsedReparsePoint
        while(ReparsePoint2<NumReparsePoints-1 && pStartSampleUtterance[utt+1]>ReparsePoints[ReparsePoint2].Deg.End)
            ReparsePoint2++
        if (pStartSampleUtterance[utt+1]<ReparsePoints[LastUsedReparsePoint].Deg.Start && pStopSampleUtterance[utt+1]<ReparsePoints[ReparsePoint2].Deg.Start)
            IsInsideActiveSection2 = false

        if (ReparsePoint2==LastUsedReparsePoint && (IsInsideActiveSection1 && IsInsideActiveSection2) || (!IsInsideActiveSection1 && !IsInsideActiveSection2))
        {
            if ((!IsInsideActiveSection1 &&

[End Correction]

6.4.  Annex B, TimeAlign.pdf

When building a histogram of correlations, the buffers of the correlations where not shifted, thus all values in the histogram were the same.

--- SPECIAL INSTRUCTIONS --- replace line 878

[Begin Correction]

--- SPECIAL INSTRUCTIONS --- Old Description

pDest[p] = matPearsonCorrelation(pA, pB+p, LenA)

--- SPECIAL INSTRUCTIONS --- New Description

pDest[p] = matPearsonCorrelation(pA+Offset, pB+p+Offset, LenA);

[End Correction]

6.5.  Annex B, SpeechTempAlign.pdf

Avoid round-off errors by bounding the noise threshold at the lower end. This is only important to make porting to other platforms easier.

--- SPECIAL INSTRUCTIONS --- Insert at line 1439

[Begin Correction]

if (*NoiseLevelSilence<0.125) *NoiseLevelSilence = 0.125

[End Correction]

6.6.  Annex B, TempAlignment.pdf

Avoid calculating correlation for signal segments which do not contain speech.

--- SPECIAL INSTRUCTIONS --- replace line 5146

[Begin Correction]

--- SPECIAL INSTRUCTIONS --- Old Description

int Delay = FindSectionAInSectionB(&SecA, &SecB, &RefSig, &DegSig, 0, 1, 1, 2*MaxLagSamples);

--- SPECIAL INSTRUCTIONS --- New Description

int FrameNumStart = floor((float) (SecB.Start)/(float)FrameSize);
int FrameNumEnd = floor((float) (SecB.End)/(float)FrameSize);
int FrameNum = FrameNumStart;
bool ActiveSeg = false;
while ((!ActiveSeg) && (FrameNum<=FrameNumEnd) && (FrameNum>=FrameNumStart) && (FrameNum<ActiveFramesLen))
{
      ActiveSeg = ActiveSeg || ActiveFrames[FrameNum];
      FrameNum++;
}
if (!ActiveSeg)
      continue;
int Delay = 0;
Delay = FindSectionAInSectionB(&SecA, &SecB, &RefSig, &DegSig, 0, 1, 1, 2*MaxLagSamples);

[End Correction]

6.7.  Annex A, subfolder Results Ed. 3

The fixes in clauses 6.1 through 6.6 lead to minor changes in the conformance test results. Therefore the subfolder containing the old result files has to be replaced by the subfolder containing the new result files provided in the attached zip file.

--- SPECIAL INSTRUCTIONS --- Replace subfolder in Annex A

[Begin Correction]

--- SPECIAL INSTRUCTIONS --- Old Subfolder

Results Ed. 3

--- SPECIAL INSTRUCTIONS --- New Subfolder

Results Ed. 3 - IG 2018-05

[End Correction]

6.8.  Annex B - additional info

NOTE – The fixes from clauses 6.1 through 6.6 have been applied to the Detailed Description files and a new set of all these pdf-files is provided as an electronic attachment.


Annex A

P.863 (2018-03) Defect Report Form

(This annex forms an integral part of this Implementers’ Guide.)

DATE:

CONTACT INFORMATION
NAME:
COMPANY:
ADDRESS:
TEL:
FAX:
E-MAIL:

AFFECTED RECOMMENDATIONS:
DESCRIPTION OF PROBLEM:
SUGGESTIONS FOR RESOLUTION:

NOTE – Attach additional pages if more space is required than is provided above.