Subchapter 22.22
references/speech/source-contract.mdMarkdown4 KBView on GitHub
Reviewed: Speech SDK v1.51.2, commit
d0d08a34f40cd7a6d421f42fb14c2aab4f905ac5. Do not substitute main.
| Rule | Public source |
|---|---|
| Source/binary/extension limits | README (opens in a new tab) |
| Property IDs to logged names | property_id_2_name_map.h (opens in a new tab) |
| Property writes | property_bag_impl.cpp (opens in a new tab) |
| Context construction and pre-send trace | usp_reco_engine_adapter.cpp (opens in a new tab) |
| Feature serialization | context builders (opens in a new tab) |
| Session creation/events | audio_stream_session.cpp (opens in a new tab) |
| Connection header | usp_connection.cpp (opens in a new tab) |
| STT result/phrase IDs | recognition_result.cpp (opens in a new tab) |
| TTS result/request IDs | synthesis_result.cpp (opens in a new tab) |
| Synthesis start/done traces | synthesizer.cpp (opens in a new tab) |
| Relative trace clock/thread marker | trace_message.cpp (opens in a new tab) |
| C++ collection API | speechapi_cxx_file_logger.h (opens in a new tab) |
Source proves that revision, not the customer’s runtime or service behavior. Bindings/extensions and JavaScript need separate verification. Do not infer server defaults, retry ceilings, capacity, billing or effective network behavior.
The analyzer recognizes selected native text-log shapes, not every binding, OS, version or feature. No version evidence means unknown. For other versions, retain literal observations; review matching source before interpretation.
Thread markers are reduced hashes, not unique object identifiers. Object
addresses can be reused. Only IDs explicit in a record are attached to it.
Property-bag addresses are not assumed to be recognizer/session objects.
Result and synthesis traces log __FUNCTION__, which MSVC qualifies with the
class name and GCC/Clang do not; the analyzer accepts both spellings. Property
values are logged between quotes without escaping, so values can contain '.
The trace clock is not guaranteed process start or UTC. Clock resets, combined processes, late capture and filtered logs limit reconstruction.
For new releases/shapes, review changed functions and capture APIs; add synthetic and non-sensitive runtime fixtures; run regressions and built-plugin Vally cases. Source review is not cross-platform runtime validation. Never publish customer logs, internal sources, credentials or support-case identifiers.