Conference segmentation acquisition and minutes export method and system for restricted H5 environment
By employing adaptive segmented acquisition and state machine control, boundary compensation, and dynamic hot word optimization, the problems of discontinuous audio acquisition and unstable minutes generation in the H5 environment were solved, enabling continuous acquisition of long conference audio and generation of structured minutes with stable format in the H5 environment.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- SHANDONG CITY COMMERCIAL BANK COOP ALLIANCE CO LTD
- Filing Date
- 2026-06-02
- Publication Date
- 2026-07-03
AI Technical Summary
In H5-restricted environments, existing technical solutions cannot achieve continuous and complete acquisition of long meeting audio, and the generated meeting minutes document format is unstable, making it difficult to use directly for enterprise archiving.
By using adaptive continuous segmented acquisition and state machine control, combined with audio-level and text-level boundary compensation mechanisms, the weight of hot words is dynamically adjusted. Multi-layer prompt word templates and structured outline parsing are used to generate structured minutes documents that meet enterprise standards.
It enables logically continuous acquisition of long conference audio in an H5 environment, eliminates semantic breaks across segments, improves recognition accuracy, and generates structured conference minutes documents with a unified format that can be directly archived.
Smart Images

Figure CN122339869A_ABST
Abstract
Description
Technical Field
[0001] This invention relates to the fields of speech signal processing and natural language processing, and in particular to a method and system for segmented acquisition and summary export of meetings in a restricted H5 environment. Background Technology
[0002] With the widespread adoption of remote and mobile collaborative work platforms, online meeting systems based on H5 pages are widely used in daily corporate communication and project collaboration due to their cross-platform compatibility and ease of installation. To improve the efficiency and traceability of meeting information recording, existing technologies have developed intelligent meeting minutes generation methods that combine speech recognition technology with large language models.
[0003] For example, Chinese invention patent application CN121148395A discloses an intelligent method for automatically generating meeting minutes based on speech recognition and large-scale models. This method collects meeting audio data streams, performs speech activity detection and speaker clustering, uses an improved Whisper model for speech transcription, and then generates meeting minutes text using large-scale language models such as GPT-4. This method achieves, to a certain extent, automated transcription and summary generation of meeting content.
[0004] However, the aforementioned existing technologies and current mainstream meeting minutes generation solutions mostly operate by default on terminal environments with full native recording capabilities (such as PC applications or native mobile applications), assuming the system can record the entire meeting audio at once or upload the complete audio file after recording. But in actual enterprise mobile office scenarios, meeting functionality is often integrated into H5 pages of various enterprise applications (such as WeChat Work, DingTalk, etc.). This type of H5 operating environment has the following inherent technical limitations: First, due to the limitations of mobile browsers and the underlying design of JS-SDK, there is a strict upper limit to the duration of a single recording segment (e.g., 58 seconds in JS-SDK), and there is a lack of a continuous streaming recording interface. This means that long conference audio cannot be fully obtained through a single recording operation. If the existing segmented recording solution is used directly, it is easy to forcibly cut segments in the middle of a sentence, resulting in semantic incompleteness and content repetition across segments.
[0005] Second, existing segmented recording solutions mostly adopt a fixed-time slicing strategy, lacking an intelligent segmentation mechanism based on silence windows and cross-segment boundary compensation capabilities. This makes it difficult to achieve smooth splicing of segmented audio at the semantic level, thus affecting the accuracy of subsequent speech transcription and minutes generation.
[0006] Third, existing solutions typically output the minutes text generated by the large language model directly. Due to the uncontrollability of the results generated by the large language model, the minutes have significant drift in terms of field completeness and format consistency, making it difficult to stably generate Word documents that meet the enterprise's archiving standards. A lot of manual intervention is still required for format adjustment and content verification.
[0007] Therefore, how to achieve continuous and complete acquisition of long conference audio in a limited H5 environment without relying on a continuous streaming recording interface, and stably generate structured conference minutes documents with a unified format that can be directly archived, has become an urgent technical problem to be solved. Summary of the Invention
[0008] To address the problems in existing technologies, this invention provides a method and system for segmented data collection and minutes export in a restricted H5 environment.
[0009] On the one hand, this invention provides a method for segmented data collection and minutes export in a restricted H5 environment, including the following steps: Step 1: User Authentication and Meeting Initialization In response to a meeting initiated by a user on an H5 page, OAuth authentication is performed to obtain the user's identifier and associated organization, position, and project affiliation information, and a unique meeting identifier is created. At the same time, recording configuration parameters are loaded, including the maximum duration of a single recording segment, the duration of the protection window, the duration of the mute window, and the duration of boundary overlap.
[0010] Step 2: Adaptive Continuous Segmented Data Acquisition and State Machine Control In response to the meeting start command, the current segment recording task is initiated. During the recording process, audio sampling frames are acquired periodically according to a preset frame length, the short-time energy of each sampling frame is calculated, and a silence window is determined based on noise floor estimation and dynamic silence threshold. When the recording duration enters the protection window interval, if a silence window is detected, the current segment is stopped; if no silence window is detected until the upper limit of the recording duration, a forced segment is executed. After the segment stops, the media identifier of the current segment is acquired, and the actual stop time and stop reason are recorded. The segment is uploaded asynchronously, and the next segment recording task is started immediately. A state machine is maintained for each segment, and the state machine includes at least the following states: recording in progress, stopped, uploading in progress, transcribing in progress, completed, waiting to be retried, and failed.
[0011] Step 3: Boundary protection, timeline compensation, and local rewriting Boundary compensation is performed on adjacent segments: In the audio-level compensation path, a circular buffer is maintained to record the duration of boundary overlap. When a segment stops, a snapshot of the tail boundary is saved. When a logical gap is detected between adjacent segments, the tail snapshot of the previous segment is concatenated with the beginning audio of the next segment to form a compensation fragment, and local transcription is performed. In the text-level compensation path, several words at the end of the previous segment and several words at the beginning of the next segment are extracted. After normalization, the boundary similarity is calculated. If the similarity exceeds the repetition threshold, matching words are pruned from the beginning of the next segment. Based on the compensation results, the logical start time and logical end time of each segment are updated, and the logical timeline is used as the sorting basis for subsequent text aggregation.
[0012] Step 4: Audio Download and Standardization Processing In response to the segmented upload completion event, the corresponding audio is downloaded from the server, its container format and encoding type are detected, and if it is not the target format, a transcoding operation is performed; the sampling rate, number of channels and sampling bit depth are unified, and noise suppression and volume normalization are performed to generate standardized audio data.
[0013] Step 5: Context-Aware Dynamic Hotword Enhanced Transcription Using the conference identifier as an index, retrieve the historical transcribed text of the most recent completed segments before the current segment. Combine this with conference metadata, participant information, and historical revision feedback to construct a contextual payload. Aggregate candidate words from a public hot word library, a personal hot word library, temporary conference hot words, and feedback hot words, calculate the comprehensive weight of each hot word, and generate a dynamic hot word payload. Integrate the contextual payload and the dynamic hot word payload into the speech recognition decoding process to perform probability enhancement and conflict resolution on the hot words, generating segmented transcribed text with speaker tags and timestamps.
[0014] Step Six: Meeting Text Aggregation and Two-Tier Text Retention Using logical start time as the first sorting key and segment index as the second sorting key, all transcribed texts that have been segmented are sorted, and boundary deduplication, incomplete sentence concatenation, and illegal character cleanup are performed to generate the original transcribed text. In response to user editing operations, the user's revision results are saved as the final transcribed text, preserving the two-layer structure of the original and final transcribed texts. When generating meeting minutes, the final transcribed text is used first, and if the final transcribed text is empty, it reverts to the original transcribed text.
[0015] Step 7: Generation and Failure Repair of Fixed Structure Minutes Obtain meeting metadata, select the corresponding prompt word template according to the meeting type, the prompt word template includes a system instruction layer, a template instruction layer, and a user data layer; input the meeting text into the large language model, generate minutes data according to the preset structured outline format; perform code fence cleanup and invisible character filtering on the model output, and perform structured outline parsing and outline verification; if parsing fails, call the lightweight repair interface to re-parse; if it still fails, execute rule-based downgrade parsing, and mark the parsing result as downgraded generation.
[0016] Step 8: Structured document normalization export and access control The meeting minutes data is converted into a finite set of document nodes, including title nodes, metadata nodes, title level nodes, paragraph nodes, list nodes, task table nodes, risk list nodes, and to-do list nodes. Each node undergoes character cleaning, null value unification, list flattening, and excessively long paragraph splitting. The processed document nodes are mapped to corresponding controls or bookmarks in a Word document template to generate an archiveable meeting minutes document. An access control list is established based on user identity, meeting creator, project team member, and system administrator roles to verify user permissions during document download.
[0017] On the other hand, the present invention also provides a system for segmented meeting data acquisition and minutes export in a restricted H5 environment, the system comprising: The authentication initialization module is used to respond to the meeting operation initiated by the user on the H5 page, perform OAuth identity authentication, obtain the user's identifier and associated organization, position, and project affiliation information, and create a unique meeting identifier; and load recording configuration parameters, including the maximum duration of a single recording segment, the duration of the protection window, the duration of the mute window, and the duration of boundary overlap. The segmented acquisition and status control module is used to respond to the meeting start command and start the current segment recording task; during the recording process, it periodically acquires audio sampling frames according to a preset frame length, calculates the short-time energy of each sampling frame, and determines the silence window based on noise floor estimation and dynamic silence threshold; when the recording duration enters the protection window interval, if a silence window is detected, the current segment is stopped; if no silence window is detected until the upper limit of the recording duration, a forced segment is executed; after the segment stops, the media identifier of the current segment is acquired and the actual stop time and stop reason are recorded, the segment is uploaded asynchronously, and the next segment recording task is started immediately; and, a state machine is maintained for each segment, the state machine including at least the states of recording, stopped, uploading, transcribing, completed, waiting to be retried, and failed. The boundary compensation module is used to perform boundary compensation operations on adjacent segments: In the audio-level compensation path, a circular buffer is maintained to record the duration of boundary overlap. When a segment stops, a snapshot of the tail boundary is saved. When a logical gap is detected between adjacent segments, the tail snapshot of the previous segment is concatenated with the beginning audio of the next segment to form a compensation fragment and local transcription is performed. In the text-level compensation path, several words at the end of the previous segment and several words at the beginning of the next segment are extracted. After normalization, the boundary similarity is calculated. If the similarity exceeds the repetition threshold, matching words are pruned from the beginning of the next segment. The module also updates the logical start time and logical end time of each segment based on the compensation results and uses the logical timeline as the sorting basis for subsequent text aggregation. The audio standardization module is used to respond to the segmented upload completion event, download the corresponding audio from the server, detect its container format and encoding type, and perform transcoding if it is not the target format; and unify the sampling rate, number of channels and sampling bit depth, and perform noise suppression and volume normalization processing to generate standardized audio data. The hot word enhancement transcription module is used to retrieve the most recent historical transcribed texts of several completed segments before the current segment, using the conference identifier as an index. It constructs a contextual payload by combining conference metadata, participant information, and historical revision feedback. It aggregates candidate words from a public hot word library, a personal hot word library, temporary conference hot words, and feedback hot words, calculates the comprehensive weight of each hot word, and generates a dynamic hot word payload. Furthermore, it integrates the contextual payload and the dynamic hot word payload into the speech recognition decoding process to perform probability enhancement and conflict resolution on hot words, generating segmented transcribed text with speaker tags and timestamps. The text aggregation and retention module sorts all segmented transcribed texts using logical start time as the first sorting key and segment index as the second sorting key. It then performs boundary deduplication, incomplete sentence concatenation, and illegal character cleanup to generate the original transcribed text. In response to user editing operations, it saves the user's revisions as the final transcribed text, preserving the two-layer structure of the original and final transcribed texts. When generating meeting minutes, the final transcribed text is used first; if the final transcribed text is empty, it reverts to the original transcribed text. The minutes generation and repair module is used to acquire meeting metadata, select the corresponding prompt word template according to the meeting type, and the prompt word template includes a system instruction layer, a template instruction layer, and a user data layer; input the meeting text into the large language model, and generate minutes data according to the preset structured outline format; perform code fence cleanup and invisible character filtering on the model output, and perform structured outline parsing and outline verification; if parsing fails, call the lightweight repair interface to re-parse; if it still fails, execute rule-based downgrade parsing and mark the parsing result as downgraded generation; The document export and access control module is used to convert the minutes data into a limited set of document nodes. The document node types include title nodes, metadata nodes, title level nodes, paragraph nodes, list nodes, task table nodes, risk list nodes, and to-do list nodes. It performs character cleaning, null value unification, list flattening, and long paragraph splitting on each node. The processed document nodes are mapped to corresponding controls or bookmarks in a Word document template to generate an archiveable meeting minutes document. Furthermore, it establishes access control lists based on user identity, meeting creator, project team member, and system administrator roles to verify user permissions during document download.
[0018] Compared with the prior art and common knowledge in the field, the present invention has the following beneficial effects: I. Overcoming the inherent constraints of the H5 environment to achieve continuous data acquisition in confined environments. Existing technologies operate by default in terminal environments with full native recording capabilities. Their technical solutions do not address, nor can they resolve, the audio truncation issues caused by the single-segment recording duration limit and the lack of a continuous streaming recording interface in H5 environments. Most known segmented recording solutions in this field employ fixed-time slicing strategies, which easily lead to forced segmentation within sentences, causing semantic breaks.
[0019] This invention achieves logically continuous audio acquisition for long conferences in a constrained H5 environment without relying on a continuous streaming recording interface. It employs a composite control mechanism involving duration limits, silence window determination, protection window triggering, and forced segmentation as a fallback, supplemented by coordinated scheduling of a segmented state machine and an asynchronous upload queue. These technical features are not simply a matter of applying known segmented recording methods, but rather an adaptive acquisition scheme designed specifically for the constraints of the H5 environment (single-segment limits, unstable callbacks). There is a clear correspondence between its technical methods and the technical problems it solves.
[0020] 2. Eliminate semantic breaks and content duplication across segments to achieve unified timeline calibration. Existing technologies assume that the audio input is a complete and continuous speech stream, and do not address the boundary handling issues in segmented scenarios. Most well-known segmentation methods in this field employ simple time-sequence splicing, which struggles to resolve issues such as word loss, content duplication, and timeline misalignment at segment transitions.
[0021] This invention employs a boundary compensation mechanism that combines audio-level circular buffer snapshot stitching with text-level boundary similarity deduplication, and introduces logical start time and logical end time as a unified timeline benchmark, achieving smooth semantic connection between adjacent segments. Specifically, audio-level compensation provides high-precision stitching for scenarios where the runtime environment supports PCM access, while text-level compensation provides degradation protection for limited scenarios that can only use JS-SDK callbacks. These two mechanisms complement each other, ensuring stable boundary compensation effects across different H5 implementation versions.
[0022] III. Improve the accuracy of domain terminology recognition and achieve dynamic adaptive weighting of hot words. While existing technologies employ the Whisper model for speech transcription, their hotword optimization methods rely on static word lists, lacking dynamic awareness of meeting context, historical transcription results, and user feedback. Well-known ASR hotword weighting methods in this field often use fixed biases, making it difficult to adapt to the rapid updates of specialized terminology.
[0023] This invention constructs a contextual payload that includes historical segments, meeting metadata, participant information, and historical revision feedback. It then integrates a public hot word library, a personal hot word library, temporary meeting hot words, and feedback hot words to form a dynamic hot word payload. During the decoding process, it enhances the probability of context-aware hot words and resolves conflicts. These technical features enable the hot word weights to be dynamically adjusted based on meeting progress, user behavior, and time decay factors, forming a self-evolving closed loop from recognition results to hot word library updates. This significantly improves the recognition stability of proper nouns and technical terms.
[0024] IV. Achieve structured and stable formatting for minutes output, overcoming the uncontrollability of large language models. Existing technologies directly output the minutes text generated by large language models. Due to the inherent uncontrollability of the results generated by large language models, the minutes exhibit significant drift in terms of field completeness and format consistency, making them unsuitable for direct use in enterprise archiving. Well-known post-processing methods for minutes in this field mostly involve manual proofreading or regular expression extraction, which are inefficient and have poor generalization capabilities.
[0025] This invention transforms free-text model output into verifiable and traceable structured data through a progressive processing chain consisting of fixed outline format constraints, a three-layer prompt word template, structured outline parsing and verification, lightweight repair, and rule-downgraded parsing. Furthermore, this invention maps structured data to corresponding controls or bookmark positions in Word document templates through normalization transformation of a limited set of document nodes (including title nodes, metadata nodes, heading level nodes, paragraph nodes, list nodes, task table nodes, etc.), as well as node-level character cleaning, null value unification, list flattening, and ultra-long paragraph segmentation. These technical features form a complete transformation chain from uncontrollable generation to controllable output, overcoming the technical defects of missing output fields and format drift in large language models.
[0026] V. Construct a collaborative mechanism for the entire process from data acquisition to data export, forming a closed-loop technology system. The aforementioned beneficial effects are not simply the sum of various technical features, but rather a result of end-to-end collaboration achieved through data object integration, unified time base, status linkage, and parameter feedback. Data objects are integrated: the meeting identifier created in step one serves as the primary key and is used throughout all stages from segmented data collection, boundary compensation, hot word transcription, text aggregation, minutes generation to document export, linking each step into a whole.
[0027] Unified time reference: The logical start time and logical end time generated in step three serve as a unified time reference for subsequent transcription timestamp annotation, text sorting and aggregation, and summary chronological organization, avoiding timeline disorder caused by asynchronous upload and inconsistent transcription completion order.
[0028] State linkage and asynchronous scheduling: The state machine in step two records the recording, uploading, and transcription status of each segment. Steps four and five are triggered to execute based on state changes, which realizes the decoupling and coordination of the acquisition, uploading, and transcription links and avoids linear blocking of segmented processing.
[0029] Feedback parameters are fed back: After the user editing results in step six are analyzed for differences, they are fed back to the hot word library and template rules in step five, enabling the system to have incremental learning and continuous optimization capabilities, which is different from the one-time processing mode of existing technologies.
[0030] The aforementioned synergistic mechanism enables the various technical features of this invention to support each other and work together to create an overall technical effect. The sum of these effects surpasses the sum of the individual effects of each feature, demonstrating the integrity and integration of the technical solution.
[0031] VI. Ensuring Meeting Data Security and Archiving Compliance Existing technologies generally do not address the issue of access control for meeting minutes documents. This invention implements fine-grained permission verification during the document download process through a multi-layered access control list based on user identity, meeting creator, project team member, and system administrator roles, preventing unauthorized access and data leakage. Simultaneously, through doc_nodes node normalization and Word template mapping mechanisms, the generated minutes conform to enterprise archiving standards in terms of title style, table structure, and list format, achieving enterprise-level document output with unified format, controllable fields, and verifiable permissions. Attached Figure Description
[0032] Figure 1 : Overall flowchart of the method of this invention; Figure 2 Step 2: Detailed flowchart of adaptive continuous segmented data acquisition and state machine control; Figure 3 Detailed flowchart of step three: boundary protection, time axis compensation, and local rewrite; Figure 4 Step 5: Detailed flowchart of context-aware dynamic hot word enhancement transcription; Figure 5 Step 7: Detailed flowchart of fixed structure summary generation and failure repair; Figure 6 : Overall system architecture diagram of the present invention. Detailed Implementation
[0033] To make the objectives, technical solutions, and advantages of this invention clearer, the invention will be further described in detail below with reference to the accompanying drawings and specific embodiments. It should be understood that the specific embodiments described herein are for illustrative purposes only and are not intended to limit the invention. Furthermore, the technical features involved in the various embodiments of this invention described below can be combined with each other as long as they do not conflict with each other.
[0034] To facilitate understanding of this invention, the following terms will first be explained: H5 environment: refers to a restricted operating environment that runs on an H5 page in a mobile terminal browser or embedded WebView, and calls local recording capabilities through the JS-SDK provided by the platform. The core limitations of this environment include: a strict upper limit on the duration of a single recording segment (usually 58 seconds), no continuous streaming recording interface provided, and the timing and stability of front-end callback events being affected by network and terminal performance.
[0035] Segmented Recording State Machine: A control model used to describe the state of each recording segment during its lifecycle. These states include, but are not limited to: INIT (segment task created), RECORDING (current segment is recording), STOPPING (suppression of recording has been initiated), UPLOADING (uploading media), QUEUED_ASR (waiting for backend transcription), TRANSCRIBING (backend is transcribing), COMPLETED (segment processing completed), RETRY_PENDING (to be retried), and FAILED (segmentation failed).
[0036] Boundary similarity: A quantitative metric used to measure the degree of content repetition between two adjacent segments at the text level. It is obtained by calculating the ratio of the longest common subsequence between the end word set of the preceding segment and the beginning word set of the following segment, or by editing distance similarity.
[0037] Logical start time and logical end time: These are timeline parameters recalibrated for each segment after boundary compensation and deduplication. The logical timeline serves as a unified benchmark for text splicing and summary sorting, overcoming timeline errors caused by inconsistent asynchronous upload and transcription completion order.
[0038] Contextual payload: A set of structured data used to enhance speech recognition, including the historical transcribed text of the most recent completed segments before the current segment, meeting identifiers, meeting types, agendas, participant lists, organization information, and historical revision replacement pairs.
[0039] Dynamic hot word payload: A weighted set of words used to improve the accuracy of domain terminology recognition, which is integrated from public hot word libraries, the creator's personal hot word library, the current conference title and agenda, the names of participants, and the results of historical manual correction.
[0040] Schema: Predefined meeting minutes output format constraints, defining the field names, field types, hierarchical structure, and required attributes that the minutes data should include, used to transform the free text output of a large language model into verifiable and traceable structured data.
[0041] Limited document nodes (doc_nodes): A collection of document elements of restricted types derived from structured minutes data. Document node types include TITLE (heading node), META (metadata node), HEADING1 / HEADING2 (heading level nodes), PARAGRAPH (paragraph node), BULLET_LIST (bullet list node), NUMBER_LIST (numbered list node), ACTION_TABLE (task table node), RISK_LIST (risk list node), and PENDING_LIST (pending list node).
[0042] Example 1: A Method for Segmented Meeting Data Acquisition and Minute Export in a Restricted H5 Environment This embodiment uses a project collaboration management scenario of a large enterprise as an example to describe the specific implementation process of the method of the present invention. The enterprise holds regular project coordination meetings, which are conducted through an H5 page on the enterprise's mobile office platform. This H5 environment implements audio acquisition capabilities based on JS-SDK, with a maximum single recording duration of 58 seconds, and does not provide a continuous streaming recording interface.
[0043] The overall process is as follows Figure 1 As shown: Step 1: User Authentication and Meeting Initialization The meeting initiator accesses the H5 meeting page via a mobile device. The front end reads the application source identifier and requests the authorization address, JS-SDK signature parameters, and recording configuration from the server. After the user completes OAuth authorization, the server obtains the user identifier and queries the user's name, organization, position, superior relationship, project member relationship, and permission role to create a unique meeting entity meeting_id, such as "M202604230001".
[0044] The server synchronously loads the recording configuration parameters and sends them to the front end. The configuration parameters are shown in Table 1. Table 1: Recording Configuration Parameters and Explanations
[0045] A complete explanation of the principles behind setting recording configuration parameters: 1. Overview of Parameter Setting Principles The recording configuration parameters involved in this invention are interrelated and work together in the segmented acquisition process. Their settings must comprehensively consider factors such as the underlying limitations of the H5 environment, the acoustic characteristics of human speech, the reliability of network transmission, and user experience. The parameters constitute the following logical relationships: `segment_limit_ms` is the top-level constraint, determined by the underlying JS-SDK limits; `safety_margin_ms` is the lead time for `segment_limit_ms`, used to reserve time for segmentation processing; `silence_window_ms` determines the semantic naturalness of the segmentation, and together with `safety_margin_ms` controls the timing of silent segmentation; `min_segment_ms` is used to filter abnormally short segments to prevent invalid data from entering subsequent processing links; `boundary_overlap_ms` is used for boundary compensation, working with `silence_window_ms` to ensure the semantic integrity of cross-segment segments; `retry_max` is a system fault tolerance parameter, independent of the aforementioned physical parameters.
[0046] 2. Detailed explanation of the principles behind each parameter setting The maximum recording duration per segment is segment_limit_ms. The setting of this parameter is directly constrained by the upper limit of the recording duration at the JS-SDK level. Actual testing shows that the upper limit of a single recording session in the JS-SDK is 58 seconds, or 58000ms. Setting `segment_limit_ms` to 58000ms poses the following risks: network fluctuations or device performance degradation may prevent the front-end from calling the stop interface in time when the upper limit is reached; some low-end devices may have insufficient system clock precision, potentially triggering an abnormal interruption before reaching the upper limit.
[0047] Therefore, a safety margin needs to be reserved to ensure that the segmented stop operation is completed before the underlying limit is reached. In this embodiment, segment_limit_ms is set to 55000ms, which is a 3000ms safety time window reserved for the underlying 58-second limit. This value allows the front-end to complete silence detection, stop the call, and update the status within the remaining 3000ms. Tests have shown that it can be reliably executed on more than 99% of devices.
[0048] The recommended value range is 50,000ms to 58,000ms. Among them, 50,000ms is suitable for scenarios with high stability requirements, reserving more safety margin to reduce the risk of exceeding limits; 55,000ms is a general scenario value, balancing safety margin and effective recording time; 58,000ms is suitable for high-performance device scenarios, maximizing the recording time of a single segment to reduce the number of segments.
[0049] Protection window duration safety_margin_ms: The protection window refers to the interval before the end of segment_limit_ms, during which the system enters the "search for silent segments" mode. The setting of safety_margin_ms must meet two conditions: first, it should be greater than the duration of the silent window to ensure that at least one complete silent detection can be completed within the protection window; second, it should allow sufficient time for the frontend to call the JS-SDK stop interface and obtain the localId.
[0050] In this embodiment, silence_window_ms is 800ms, the average response time of the JS-SDK stop interface is 200ms to 500ms, and the network upload preparation time is approximately 200ms. Setting safety_margin_ms to 2000ms can cover the total time of the above operations and leave redundancy.
[0051] The recommended value range is 1000ms to 3000ms. Among them, 1000ms is suitable for scenarios with good network conditions, which can reduce the waiting time of the protection window and increase the effective recording time; 2000ms is a general scenario value that can cover the complete time of silence detection, stopping the call and uploading preparation; 3000ms is suitable for high-latency network or low-end device scenarios, providing sufficient operation buffer time.
[0052] The duration of the silent window is silence_window_ms. The silence window duration is used to determine whether continuous silence constitutes a segmentation condition. The setting of this parameter must conform to the acoustic laws of human speech: the typical duration of pauses between sentences in normal speech is 200ms to 500ms, the typical duration of pauses between paragraphs is 500ms to 1000ms, and silence exceeding 1000ms usually indicates the end of speech or a semantic boundary.
[0053] If silence_window_ms is too short, for example, less than 400ms, normal inter-sentence pauses will be misjudged as silent windows, resulting in excessive segmentation and generating a large number of fragmented segments with a duration of less than 2 seconds. If silence_window_ms is too long, for example, greater than 1200ms, the probability of silent windows appearing decreases, and segmentation is more likely to trigger forced segmentation, causing the segmentation point to fall in the semantic middle.
[0054] Statistical analysis of 50 natural meeting recordings (total duration approximately 10 hours) showed that when silence_window_ms was set to 800ms, approximately 78% of the segment cuts occurred at paragraph boundaries or speaker switching points, achieving optimal semantic integrity.
[0055] The recommended value range is 400ms to 1200ms. Among them, 400ms is suitable for fast-paced discussion scenarios, which can quickly respond to speech switching, but may result in excessive segmentation; 800ms is a general meeting scenario value, balancing semantic integrity and timely segmentation; 1200ms is suitable for slow-paced reporting scenarios, which tends to retain longer speech paragraphs.
[0056] Boundary overlap duration (boundary_overlap_ms): Boundary overlap duration is used to set the size of the circular buffer in the audio-level boundary compensation path, and serves as a reference duration for local re-transcription in the text-level compensation path. This parameter must meet the following conditions: it should be greater than the average duration of pauses between sentences to ensure complete semantic boundaries are captured; it should cover the pronunciation duration of a complete phrase, typically 500ms to 1500ms; excessive boundary overlap will increase storage and computational overhead.
[0057] In this embodiment, boundary_overlap_ms is set to 1000ms, which can cover the pronunciation length of 3 to 5 lexical units. Actual testing shows that when there are logical gaps between adjacent segments, a 1000ms boundary window can capture sufficient contextual information for boundary similarity calculation and local retransmission.
[0058] The recommended value range is 300ms to 1500ms. Among them, 300ms is suitable for scenarios with limited storage and computing resources, which can reduce boundary buffering overhead, but may capture incomplete boundary information; 1000ms is a general scenario value, which can cover 3 to 5 words and is sufficient for boundary compensation; 1500ms is suitable for scenarios with high requirements for compensation accuracy and can provide richer contextual information.
[0059] Minimum effective segment duration min_segment_ms: The shortest effective segment duration is used to filter excessively short segments caused by abnormal triggers, such as extremely short silent segments caused by misjudgment of voice activity detection, instantaneous stops caused by user misoperation, and premature interruptions caused by system abnormalities.
[0060] When the segment duration is too short (e.g., less than 5000ms), the semantic information contained in the segment is limited, making it unable to independently complete meaningful speech recognition. Instead, it increases the processing burden of subsequent text aggregation. In this embodiment, min_segment_ms is set to 8000ms, which is equivalent to the length of approximately one sentence. When the actual segment duration is lower than this threshold, the system marks the segment as invalid and ignores it during text aggregation, or merges it with adjacent segments.
[0061] The recommended value range is 5000ms to 10000ms. Among them, 5000ms is suitable for scenarios with high real-time requirements, which can retain more segments, but the effective information density is lower; 8000ms is a general scenario value, which can filter out abnormally short segments and retain effective semantics; 10000ms is suitable for scenarios with high accuracy requirements, which retain only segments with sufficient information.
[0062] maximum number of retries retry_max: The maximum number of retries is used to control the retry behavior when segmented upload or transcription fails. The setting of this parameter needs to balance the success rate and system load: if the number of retries is too few (e.g., 1 time), failures caused by occasional network fluctuations cannot be recovered; if the number of retries is too many (e.g., 10 times), it will consume system resources and delay subsequent segmented processing.
[0063] In this embodiment, `retry_max` is set to 3 times, combined with an exponential backoff strategy (2-second interval for the first retry, followed by 4-second and 8-second intervals), resulting in a total retry time window of approximately 14 seconds. This setting can cover most network interruption scenarios (typically with recovery time within 5 seconds) while avoiding resource waste caused by continuous retries. After more than 3 retries, the system is judged to be in a FAILED state and handled by the manual retransmission interface.
[0064] The recommended range is 3 to 5 retry attempts. 3 attempts are suitable for general network environments, covering occasional network fluctuations with manageable system overhead; 4 attempts are suitable for unstable network scenarios, increasing the probability of recovery but extending the failure determination time; 5 attempts are suitable for scenarios with high reliability requirements, maximizing the retry success rate and suitable for critical meetings.
[0065] Meeting type (meeting_type): The meeting type parameter is used to select different Prompt templates and structured outline schemas. This parameter does not have a physical threshold attribute; its value is determined by the business scenario. Pre-defined meeting types include, but are not limited to: project advancement meetings, business analysis meetings, review meetings, government coordination meetings, technical review meetings, and debriefing meetings. Templates for different meeting types differ in field structure, summary granularity, and action item format to adapt to the minutes specification requirements of different scenarios.
[0066] 3. Interdependencies of parameters The following dependencies exist between the parameters and should be considered during configuration: First, segment_limit_ms should be greater than or equal to the sum of safety_margin_ms and the minimum valid duration to ensure that valid recording can be completed within the protection window. In this embodiment, 55000ms is greater than the sum of 2000ms and 8000ms, which is 10000ms, thus satisfying the constraint.
[0067] Second, safety_margin_ms should be greater than or equal to the sum of silence_window_ms and the operation buffer time to ensure that a complete silence detection is completed within the protection window. In this embodiment, 2000ms is greater than the sum of 800ms and 500ms, which is 1300ms, thus satisfying the constraint.
[0068] Third, boundary_overlap_ms should be greater than or equal to twice the average frame length to ensure that the boundary buffer contains at least two frames of data. In this embodiment, 1000ms is greater than twice 40ms, i.e., 80ms, which satisfies this constraint.
[0069] Fourth, the total backoff time corresponding to `retry_max` should be less than the ratio of the total meeting duration to the number of segments, in order to avoid retries blocking subsequent segment processing. In this embodiment, the 14-second backoff window has a limited impact on the average 49-second segment, thus satisfying this constraint.
[0070] 4. How to use parameter configuration The above parameter configurations are sent from the server to the front end during the meeting initialization phase in step one. The front end then controls segmentation behavior based on these parameters during the recording scheduling in step two. The configuration parameters support dynamic adjustment; that is, different meetings or different segments of the same meeting can use different parameter configurations, such as dynamically adjusting `retry_max` when network conditions change. The core concept of this invention is not limited by specific parameter values.
[0071] Step 2: Adaptive Continuous Segmented Data Acquisition and State Machine Control like Figure 2 As shown, in response to the "Start Meeting" command from the meeting initiator, the front end creates a recording task with segment_index of 0, records planned_start_ms as the current system timestamp (e.g., 1704067200000ms), and sets the segment status to RECORDING.
[0072] During recording, the front end acquires audio sampling frames at a period of frame_ms = 40ms. For operating environments capable of accessing PCM data, short-time energy is calculated for each audio sampling frame. Short-time energy characterizes the amplitude of the speech signal within a short time window and is one of the fundamental features for speech activity detection. For clean speech frames, the short-time energy value is significantly higher than that of silent or noisy frames. E(t) is defined as the short-time energy (unit: dB) of the t-th frame, and its calculation formula is... Where N is the number of intra-frame sampling points, For the first The amplitude of each sampling point For very small positive numbers (e.g.) This is used to avoid logarithmic calculation errors when there is zero input. When the short-time energy of several consecutive frames is lower than the dynamic mute threshold, the system determines that the current position is a mute window.
[0073] The median of the short-time energy values of the most recent 20 frames is taken as the noise floor N_floor. In this embodiment, the noise floor N_floor is estimated using a sliding median filtering method to resist the interference of sudden impulse noise (such as keyboard typing or document page turning sounds) on the silence determination.
[0074] The dynamic silence threshold `threshold_silence` is obtained by adding `N_floor` to a preset margin (6dB). This value is based on the following experimental data: when the preset margin is less than 3dB, weak background noise in the environment (such as air conditioner fan noise) is easily misjudged as speech; when the preset margin is greater than 10dB, some low sound pressure level speech (such as whispers, far-field speech) is easily misjudged as silence. Testing showed that a preset margin of 6dB resulted in the optimal F1 score (0.94) for silence detection. When the short-term energy of 20 consecutive frames (corresponding to 800ms) is less than `threshold_silence`, the current position is determined to be a silence window.
[0075] When the current segment recording duration enters the safety_margin_ms protection window (i.e., the interval from 53000ms to 55000ms), the scheduler enters the "search for silent segments" phase. If the first silent window is detected within the protection window, the current segment is stopped immediately; if no silent window is detected until segment_limit_ms, a forced segment is executed.
[0076] After a segment stops, the frontend retrieves the localId returned by the JS-SDK, records actual_end_ms (e.g., 1704067255000ms), actual_stop_reason (with values of "silence" or "force"), and segment_index, and changes the segment status to STOPPING, then to UPLOADING. The upload thread asynchronously uploads the current segment to the server, and the recording scheduler immediately starts the next segment (segment_index=1), achieving a seamless segment switching experience for the user.
[0077] When uploading or transcribing fails, the state machine transitions to RETRY_PENDING and performs up to 3 retries according to the exponential backoff strategy (the first retry interval is 2 seconds, followed by 4 seconds and 8 seconds). After the maximum number of retries is exceeded, the state is set to FAILED, and the meeting creator can manually upload the data through the manual re-upload interface.
[0078] In this embodiment, the segmented recording state machine includes the following nine states. The definition of each state, an example in this embodiment, the entry condition, and the exit condition are as follows: INIT state: This state indicates that the segment task has been created but recording has not yet started. In this embodiment, the segment with segment_index 0 enters this state after the meeting initialization is completed. The condition for entering the INIT state is the completion of meeting initialization, and the condition for exiting the state is the successful call to the recording start interface.
[0079] RECORDING state: This state indicates that the current segment is being recorded. In this embodiment, the recording begins successfully and enters this state, at which point the front end is acquiring audio data. The condition for entering the RECORDING state is successful recording, and the condition for exiting the state is triggering a silent segment cut or a forced segment cut.
[0080] STOPPING state: This state indicates that a stop recording command has been initiated and the system is waiting for the JS-SDK to return a result. In this embodiment, the system enters this state after calling the stop interface when the mute window condition or the forced segmentation condition is met. The entry condition for the STOPPING state is triggering the segmentation condition, and the exit condition is successfully obtaining the localId.
[0081] UPLOADING state: This state indicates that a local audio file is being uploaded to the server. In this embodiment, the system enters this state after successfully obtaining the localId, and the upload thread asynchronously uploads the segmented audio to the server. The condition for entering the UPLOADING state is successful acquisition of the localId, and the condition for exiting is obtaining the media_id.
[0082] QUEUED_ASR Status: This status indicates that the segment has been uploaded and is awaiting backend ASR scheduling. In this embodiment, after receiving the segment, the backend submits the segment processing task to the message queue, and the segment enters the QUEUED_ASR status. The condition for entering the QUEUED_ASR status is submitting the segment processing task, and the condition for exiting the status is that the backend retrieves the task from the queue.
[0083] TRANSCRIBING State: This state indicates that the backend is performing speech recognition transcription. In this embodiment, the segment enters the TRANSCRIBING state when the ASR scheduling service retrieves a task from the queue and invokes the transcription engine. The condition for entering the TRANSCRIBING state is that a task is retrieved, and the condition for exiting the state is that the transcription result is written to the database.
[0084] COMPLETED state: This state indicates that all segment processing is complete. In this embodiment, after successful transcription and writing of the result to the database, the segment enters the COMPLETED state, marking the end of the segment's complete lifecycle. The condition for entering the COMPLETED state is successful transcription and writing to the database; this state has no exit condition and is one of the final states.
[0085] RETRY_PENDING state: This state indicates that the segment upload or transcription failed and is waiting for a retry. In this embodiment, when the upload interface returns a failure or the transcription service returns an exception, the segment enters the RETRY_PENDING state. The condition for entering the RETRY_PENDING state is that the upload or transcription failed, and the condition for exiting the state is that a retry is triggered after a preset backoff time has been reached.
[0086] FAILED state: This state indicates that the segment processing has failed and the maximum number of retries has been exceeded. In this embodiment, when the number of retries reaches the retry_max setting (3 times in this embodiment) and still fails, the segment enters the FAILED state. The condition for entering the FAILED state is exceeding the maximum number of retries. This state has no exit condition and is one of the final states, requiring manual processing via the retransmission interface.
[0087] The transitions between the aforementioned states are uniformly controlled by a state machine. Each state change records a timestamp and triggering event, forming a complete operation log for easy troubleshooting and performance analysis. The state machine adopts an event-driven model, with transitions between states triggered by asynchronous events (such as upload complete, transcription complete, and retry timer triggers), achieving decoupling and parallel scheduling of segmented processing flows.
[0088] Step 3: Boundary protection, timeline compensation, and local rewriting This embodiment uses a text-level boundary compensation path (suitable for scenarios where only JS-SDK callbacks can be used and PCM streams cannot be accessed).
[0089] like Figure 3 As shown, after receiving adjacent segments, the backend extracts the last M words (M=20) of the previous segment and the first N words (N=20) of the next segment. After unifying case, converting full-width and half-width characters, removing stop symbols, normalizing aliases, and unifying number formats, the boundary similarity between the two sets of words is calculated. Sim=max(LCS(A,B) / min(|A|,|B|),1-EditDistance(A,B) / max(|A|,|B|)) Where LCS(A,B) is the length of the longest common subsequence of sets A and B, and EditDistance(A,B) is the edit distance.
[0090] If Sim ≥ the boundary similarity threshold, then duplicate boundary text is determined to exist, and matching words are pruned from the beginning of the next segment. The value of the boundary similarity threshold directly affects the accuracy of duplicate pruning. A boundary similarity threshold that is too low (e.g., below 0.6) may result in incorrect pruning of non-duplicate content; a boundary similarity threshold that is too high (e.g., above 0.9) may result in incomplete pruning of duplicate content. Statistical analysis of 200 adjacent segment samples shows that when the boundary similarity threshold is between 0.72 and 0.85, the precision and recall of duplicate pruning both reach above 0.85, and in this embodiment, 0.78 is preferred.
[0091] When a logical gap exists between adjacent segments, local re-transcription is triggered. The triggering condition for local re-transcription is: the absolute value of the logical gap between adjacent segments exceeds 200ms, and there is no valid word timestamp covering the gap interval. If the above conditions are met, the end boundary snapshot of the previous segment (duration boundary_overlap_ms) is cross-stitched with the beginning audio of the next segment (duration boundary_overlap_ms / 2) to generate compensated audio, and the ASR engine is called to perform local re-transcription. The valid words in the re-transcription result are used to fill the logical gap.
[0092] After compensation, the system generates a nominal timeline with actual_start_ms and actual_end_ms, and updates logical_start_ms and logical_end_ms based on the deduplication results. For example, if the actual_end_ms of the first segment is 1704067255000ms and the actual_start_ms of the second segment is 1704067256000ms, and if the boundary duplicate term "quota model" is detected and pruned, the logical_start_ms of the second segment is adjusted to 1704067255200ms to ensure no overlap during text concatenation.
[0093] Step 4: Audio Download and Standardization Processing After receiving the media_id, the backend downloads the audio file from the server. It detects the audio container format by reading the magic number or RIFF block identifier in the file header to determine the format type. If it is SILK format (a common format in the environment, identified by "!SILK" in the file header), it calls the FFmpeg transcoding tool to decode and resample it to a 16kHz, mono, 16-bit linear pulse code modulation (PCM) format.
[0094] After transcoding is complete, perform the following standardization process: A noise suppression algorithm based on spectral subtraction is employed to estimate the environmental noise spectrum and subtract noise components from the speech signal. Specifically, the input audio is framed and windowed, then converted to the frequency domain using a Fast Fourier Transform. The steady-state noise power spectrum is estimated in the non-speech segments. An oversubtraction factor (ranging from 1.2 to 2.0, with a larger value for the lower the signal-to-noise ratio) is used to subtract the estimated noise power spectrum from the noisy speech power spectrum. Finally, the time-domain signal is recovered using an Inverse Fast Fourier Transform.
[0095] An automatic gain control algorithm is employed to normalize the waveform amplitude to a target dynamic range of -3dBFS. Specifically, the effective value (root mean square) of the audio signal is calculated and compared with the target effective value corresponding to -3dBFS to obtain the gain adjustment amount. A smoothing filtering strategy with an attack time of 20ms and a release time of 200ms is used to adjust the rate of gain change, and the output amplitude is limited to the normalized range of [-1.0, 1.0].
[0096] The standardized audio is used to generate a standard_audio_id, which is stored in the object storage service for subsequent ASR calls.
[0097] Step 5: Context-Aware Dynamic Hotword Enhanced Transcription like Figure 4As shown, using the meeting identifier `meeting_id` as an index, the transcribed text of the three most recent completed segments preceding the current segment is read from the database. Combined with meeting metadata, participant information, and historical revision feedback, the context payload `asr_context_payload` is constructed. When the number of segments preceding the current segment is less than three (such as the first segment after the meeting begins), the historical transcribed text field is set to empty, and the context payload only contains the current meeting metadata, participant information, and agenda.
[0098] The context payload includes the following fields: conference identifier, current segment index, speaker tags for the most recent segments and their corresponding time intervals and transcribed text, conference topic summary, list of attendees' names, and misidentified words and correct word replacement pairs generated from historical manual proofreading.
[0099] Simultaneously, hot words are aggregated from four sources and their overall weight is calculated. The formula for calculating the overall weight of hot words is the weighted sum of the weights of each component, constrained to a preset range by a pruning function. The setting of each component coefficient must take into account the importance, timeliness, and recognition difficulty of the hot words.
[0100] It should be noted that the coefficients of each component of the hot word weight described in this invention are dimensionless scores, used to characterize the relative priority of different hot words in the speech recognition decoding process, with scores ranging from 0 to 100. The higher the score, the stronger the bias enhancement obtained by the hot word during ASR decoding.
[0101] The value range and preferred values of each component coefficient in this embodiment are as follows: First source: Public hot word database The public hot term library contains industry-standard professional terms, and the basic weight is determined based on the importance level of the terms in industry standards. The basic weight of the public hot terms is used to characterize the static importance of industry-standard professional terms, with a reference value range of 20 to 40. Specifically, first-level terms (such as "transformer" and "circuit breaker" in the power industry, or "iteration cycle" and "grayscale release" in the internet industry) are assigned higher values of 35 to 40, while second-level terms (such as "requirements review" and "use case design") are assigned lower values of 20 to 30. In this embodiment, first-level terms are assigned a value of 40, and second-level terms are assigned a value of 30.
[0102] Second source: Conference title and agenda Temporary hot words related to the meeting are obtained through keyword extraction and entity recognition, and weight increments are added upon each hit. The meeting context weight is used to characterize the importance of the hot words in the current meeting title, agenda, or topic summary, with a reference value range of 15 to 30. When the hot word appears in the meeting title, the upper limit of 30 is used, and when it only appears in the agenda or topic summary, the median value of 20 to 25 is used. In this embodiment, the hit value for the meeting title is 30, and the hit value for the agenda is 25.
[0103] Third source: Participant's name The names of attendees are obtained from the organizational structure information, and a preset weight increment is applied. Additional increments can be applied for project leaders or moderators. The attendee name weight is used to enhance the accuracy of identifying speakers or responsible parties, with a reference value range of 15 to 25. For ordinary attendees, a weight of 15 to 20 is used; for meeting moderators, project leaders, or those responsible for minutes, an additional increment of 5 to 10 can be applied. In this embodiment, 20 is used for ordinary attendees, 25 for project leaders (including a 5-increment for the person in charge), and 28 for moderators (including an 8-increment for the moderator).
[0104] Fourth source: Feedback on recent revisions The weights are cumulatively applied based on time decay, with the decay rate controlled by a decay factor. This allows the system to quickly respond to recent terminology changes while avoiding long-term negative impacts from single erroneous revisions. Feedback hot words weights characterize personalized terminology preferences reflected in users' historical revision feedback. The base weight reference range is 20 to 40, which decays over time after being multiplied by the decay factor. The decay factor reference range is 0.08 to 0.15, corresponding to a half-life of approximately 5 to 9 days. In this embodiment, the base weight of feedback hot words is 30, and the decay factor is 0.1 (half-life approximately 7 days). That is, the weight of feedback hot words generated 7 days ago decays to approximately 15, 14 days ago to approximately 7.5, and so on.
[0105] Furthermore, when a target hot word forms an alias relationship with an existing hot word in the hot word library (through at least one of the following methods: edit distance determination, pronunciation similarity determination, user mapping determination, or rule mapping determination), the system introduces an alias matching weight, inheriting a preset proportion of weight from the existing hot word. The alias matching weight is used for weight transfer between different expressions of the same term (e.g., "" and "Alliance Move"). The reference value range is 50% to 80% of the inherited original weight; in this embodiment, the inheritance ratio is 70%. The alias matching weight enables weight sharing and transfer between different expressions of the same entity, ensuring that the weight gain from feedback revisions benefits all alias expressions of the entity. Simultaneously, the setting of an inheritance ratio less than one controls the weight attenuation during multi-hop alias transfer.
[0106] The aforementioned contextual payload and dynamic hotword payload are integrated into the ASR decoding process. In the attention-based end-to-end ASR decoder, hotword bias weights are superimposed on the output probabilities of the corresponding tokens in the form of logarithmic bias, and the bias weights are positively correlated with the overall hotword weights. For phrase-type hotwords, a phrase bias strategy is adopted, jointly applying bias to each token in the phrase to prevent the phrase from being split into discrete characters.
[0107] When similar-sounding words exist in the hot word database, a conflict resolution module based on contextual semantics is activated. This module uses a language model fine-tuned with domain corpus to calculate the contextual fluency of candidate word sequences. When the difference in posterior probabilities between two candidate words is less than a preset threshold, conflict resolution is triggered, and the word with higher contextual fluency is selected as the final recognition result. For example, when both "combiner box" and "return box" are detected as candidate hot words and their acoustic scores are similar, the module selects "combiner box" based on words such as "photovoltaic" and "inverter" mentioned above, thus obtaining higher contextual semantic fluency.
[0108] The hot word database supports a dynamic update mechanism. After each meeting, the system extracts the differences between the original and final transcribed texts and generates revision and replacement pairs as feedback samples. These feedback samples are then scored (by user confirmation or confidence model evaluation; low-scoring samples are filtered out) and used to update the personal and public hot word databases. When the number of entries in the hot word database exceeds a preset limit, the system sorts them by weight value from smallest to largest, pruning low-frequency hot words at the end to maintain a controllable database size.
[0109] The identified text, after hot word optimization and conflict resolution, is aligned and merged with the speaker identity tags and timestamps obtained in step four to generate a segmented transcribed text sequence with speaker tags and timestamps. The format is start time, end time, speaker and transcribed content, which can be used for subsequent text aggregation.
[0110] Step Six: Meeting Text Aggregation, Two-Tier Text Mechanism, and Feedback Flow After the meeting, the system reads all transcribed segments by meeting_id and performs a stable sorting by logical_start_ms in ascending order and segment_index in ascending order. After sorting, the following processing is performed: Boundary deduplication: Align the timeline based on logical_start_ms and logical_end_ms of the previous segment, and trim the text corresponding to overlapping intervals; Sentence fragment concatenation: If the starting character boundary of the current segment is located in the middle of a word or sentence, it is merged with the last text of the previous segment to form a complete sentence; Illegal character cleanup: Removes control characters, abnormal newline characters, and invisible characters; Segment reference retention: Preserve the mapping relationship between each segment text and segment_id, ASR result ID, lexical timestamp, and compensation status.
[0111] The above processing results generate a raw_transcript, which is stored in the conference data table. After the user revises the raw_transcript in the text editing interface, the system saves the revised result as a final_transcript, without overwriting the raw_transcript. The final_transcript is used preferentially when generating minutes; if the final_transcript is empty, the raw_transcript is used.
[0112] The system further performs a difference analysis on raw_transcript and final_transcript, extracting misidentified words and corrected word replacement pairs, frequently supplemented meeting element fields, and expression preferences of specific creators / organizations. Feedback samples, after being anonymized, deduplicated, and quality-scored, are used to update the personal hot word library, template selection rules, and field extraction rules.
[0113] Step 7: Generation and Failure Repair of Fixed Structure Minutes like Figure 5 As shown, it reads the meeting title, creator, organization, meeting type ("Project Advancement Meeting"), start time, total duration, list of participants, template number, and text version number (preferably final_transcript).
[0114] Select the Prompt template according to the meeting type. This example uses a three-layer structure: System instruction layer: Define the role of the large language model as a "professional conference minutes writing assistant", specify the output format as JSON, and prohibit the addition of explanatory prefixes or suffixes; Template instruction layer: Defines the fields that meeting minutes should include (title, meeting information, summary, agenda list, action items, risk items, to-do items, next meeting), and provides descriptions for each field; User data layer: Populates the actual meeting text and metadata.
[0115] This embodiment calls the deepseek-v4-pro model interface and configures the parameters as follows: temperature=0.2 (controls output randomness; a lower value is beneficial for output format stability), max_tokens=2000000.
[0116] After the model is output, the system executes the following processing chain: Clean up code fences, explanatory prefixes, endnotes, and invisible control characters; Call the JSON parser to perform syntax parsing and schema validation; If the first parsing fails, a lightweight repair Prompt that only fixes JSON formatting (containing no business logic, only fixing formatting errors such as mismatched brackets, extra commas at the end, missing quotes, etc.) is called to re-parse the repaired text. If it still fails, execute the rule parsing based on title keywords, speaker identity, deadline expression, and risk keywords, and mark the result as "downgraded generation".
[0117] In this embodiment, the model output of an actual call successfully passed the schema verification, and the generated minutes data included 3 issues, 8 action items, and 2 risk items.
[0118] Step 8: Structured document normalization export and access control The system converts summary_json into a finite set of document nodes, doc_nodes. In this embodiment, the conversion rules for doc_nodes are as follows: TITLE type nodes: These originate from the title field in the minutes data and are mapped to the title bookmark position in the Word document template. The exception handling method is: when the title field is empty, the original meeting title is used followed by the words "Minutes" as the default title.
[0119] META type nodes: These originate from meeting information fields in the meeting minutes data (including meeting type, creator, start time, meeting duration, attendees, etc.), and are mapped to the corresponding cells in the meeting information table. The exception handling method is: when any information field is missing, the corresponding cell is filled with "Unclear".
[0120] HEADING1 and HEADING2 type nodes originate from hierarchical fields such as topic titles in the minutes data, and are mapped using preset heading styles (such as first-level headings, second-level headings). The exception handling method is: when the heading level exceeds three levels, it is automatically downgraded to a normal paragraph style and no longer treated as a heading.
[0121] PARAGRAPH type nodes: These originate from the full-text summary field and the conclusion field of each topic in the minutes data, and are mapped to the main content area of the text. The exception handling method is as follows: when a paragraph exceeds 500 words, it is automatically split into multiple sub-paragraphs at the period position to enhance document readability.
[0122] BULLET_LIST and NUMBER_LIST type nodes: These originate from the discussion point fields and risk item fields in the minutes data, and are mapped to generate bulleted lists or numbered list paragraphs. The exception handling method is as follows: when the list nesting depth exceeds two levels, it is automatically flattened into a single-level list, and the child list items are promoted to the parent list level.
[0123] ACTION_TABLE type nodes: These originate from the action item list fields (including responsible person, task description, deadline, status, etc.) in the minutes data. The mapping method involves copying duplicate action item blocks and dynamically generating table rows based on the number of action items. The exception handling method is as follows: when any field—responsible person, task description, or deadline—is missing, the corresponding cell is marked "Pending Confirmation," prompting the user to supplement it later.
[0124] The following node-level cleaning is performed during the conversion process: (a) Character cleaning Character cleaning is used to remove illegal characters from document nodes that may cause Word parsing errors or display anomalies. Specifically, it includes: Removal of Control Characters: Control characters refer to characters with ASCII code values from 0 to 31 and 127 (such as null characters, tabs, newlines, carriage returns, vertical tabs, etc.), as well as Cc (other control characters) and Cf (format control characters, such as left-to-right markers and right-to-left markers) in the Unicode category. These characters are invisible in Word documents and do not affect semantics, but may cause XML parsing errors or document structure corruption. This embodiment uses a whitelist filtering strategy, retaining only printable characters (ASCII code values 32 to 126), commonly used Chinese characters (Unicode 4E00 to 9FFF), and punctuation marks (such as commas, periods, semicolons, colons, question marks, exclamation marks, etc.).
[0125] Removal of zero-width characters: Zero-width characters include zero-width connectors (Unicode U+200D), zero-width non-connectors (Unicode U+200C), zero-width spaces (Unicode U+200B), and zero-width non-breaking spaces (Unicode U+FEFF). These characters are visually invisible but may affect the accuracy of text search, copy-paste, and keyword matching. This embodiment removes all of the above zero-width characters during the character cleaning stage.
[0126] Removal of illegal XML characters: Word documents are stored in the OpenXML format. The XML specification prohibits certain characters, such as orphaned surrogate pairs (surrogate pairs appearing alone, either high or low bit) that do not correspond to any Unicode character. In this embodiment, each character is validated when generating doc_nodes, and characters that do not conform to the XML 1.0 specification are removed.
[0127] (ii) Unification of null values Null values are uniformly used to replace null values in data structures with meaningful placeholders, preventing blank cells or missing fields from appearing in the generated documents.
[0128] Handling empty strings: For fields with values that are empty strings (strings of length 0), the system selects a replacement value based on the field type. For required fields (such as meeting title, topic name), it replaces them with "None"; for optional fields (such as action item deadline, risk item contingency plan), it replaces them with "To be supplemented".
[0129] Handling null values: For fields with values that are JSON null or database NULL, replace them according to the same rules as above. For array type fields (such as a list of discussion points), if the array is empty, keep the empty list instead of replacing it with a placeholder to maintain a clear document structure.
[0130] Special handling for different node types: For META type nodes, missing fields should be filled with "Unclear"; for ACTION_TABLE type nodes, missing owner, task, and deadline fields should be filled with "Pending Confirmation"; for RISK_LIST type nodes, missing scope of impact and emergency plan fields should be filled with "Pending Assessment".
[0131] (iii) List flattening List flattening is used to solve the problems of inconsistent styles and reduced readability of nested lists in Word documents.
[0132] Nesting Depth Determination: Each item in a list node may contain sublists, forming a multi-level nested structure. This embodiment uses the indentation level of the list item or the existence of a sublist as the basis for determining the nesting depth. When a list item contains a sublist, the nesting depth of that sublist is the depth of the parent list plus one.
[0133] Handling second-level and higher nesting: When a nesting depth exceeding two levels is detected (i.e., a sublist of sublists exists), the system performs a flattening operation. Specifically, all items in the sublists are promoted to the same level as the parent list, maintaining their original order, and consecutive list numbers are regenerated. After flattening, the original three-level nested structure becomes a single-level list, with all list items at the same indentation level.
[0134] List style preservation: Flattening only changes the list's hierarchical structure, not its type (bulleted list or numbered list). For numbered lists, the numbering is regenerated after flattening, maintaining continuity without interruption.
[0135] (iv) Long segment segmentation Long paragraph segmentation is used to divide excessively long paragraphs into multiple shorter paragraphs, improving the readability of documents when reading on mobile devices.
[0136] Segmentation Threshold Setting: This embodiment uses 500 characters as the segmentation threshold. This threshold is set based on the following considerations: a mobile screen displays approximately 200 to 300 characters per screen, and a 500-character paragraph requires approximately two to three screens of scrolling; paragraphs exceeding 500 characters will cause users to scroll frequently when searching for key information, reducing reading efficiency. 500 characters is approximately the length of four to six natural sentences in Chinese, making it suitable for segmentation into two to three paragraphs.
[0137] Segmentation rules: Use periods, question marks, and exclamation marks as segmentation points. Traverse the positions of these punctuation marks within the paragraph. When the cumulative length of the segmented sub-paragraphs exceeds a threshold and a period or other separator is encountered, segmentation is performed at that position. If no period or other separator exists in the paragraph (such as in list-style expressions or consecutive short sentences), then a forced segmentation based on character position is performed when the threshold is reached, and the conjunction "and" or "in addition" is added at the segmentation point to maintain semantic coherence.
[0138] Post-segmentation processing: Each sub-paragraph generated by the segmentation inherits the node type and style attributes of the original paragraph, is arranged in order, and a blank line is reserved between each sub-paragraph as a visual separator.
[0139] After generating the Word document, the system establishes an access control list based on the user's identity. The access control list uses document identifier and user identifier as keys to define the types of operation permissions for different user roles. In this embodiment, the permission types are divided into three categories: read-write permissions (allowing viewing, downloading, editing, and saving the document), read-only permissions (allowing only viewing and downloading, not editing), and administrative permissions (allowing viewing, downloading, editing, deleting, sharing, and permission allocation).
[0140] Permissions of the meeting creator: The meeting creator is the user who initiates the meeting and completes the authentication initialization process. In most meeting scenarios, the creator is the organizer or convener of the meeting and bears overall responsibility for the meeting content. This embodiment grants the meeting creator read and write permissions to the minutes document, allowing them to view, download, edit, and save the document so that they can make necessary additions and corrections based on the automatically generated minutes.
[0141] Host's authority: The moderator is a user responsible for advancing the agenda, controlling speaking, and summarizing the meeting. The moderator may be the same person as the meeting creator, or they may be another user designated by the creator. The system identifies the moderator through the moderator field in the meeting metadata. This embodiment grants the moderator the same read and write permissions as the meeting creator to ensure that the moderator can make final confirmation of the meeting minutes.
[0142] Authority of the person responsible for the minutes: The person responsible for compiling and archiving meeting minutes is the user designated to do so. This person can be specified by the meeting creator during meeting setup or automatically recommended by the system after the meeting based on speaking frequency and role weight (usually the user with the most speaking appearances or the project leader). The person responsible for compiling and archiving minutes has read and write permissions and can edit and finalize the minutes.
[0143] Permissions of the creator's superior: The creator's superior refers to the direct manager of the meeting creator within the organizational structure. Superiors typically need to understand and supervise the content of meetings chaired or participated in by their subordinates, but generally do not directly participate in editing the meeting content. This embodiment grants the creator's superior read-only permissions to the minutes document, allowing them to view and download the document, but not edit it, to maintain the originality of the minutes content and traceability of responsibility.
[0144] Permissions of project team members: Project team members refer to all user members associated with the project to which the meeting belongs. The system obtains the list of project team members by querying the project-user relationship table in the project management system. For meetings involving cross-departmental collaboration, project team members may include users with different roles from multiple departments. This embodiment grants project team members read-only permissions so that all parties involved in the project collaboration can promptly understand the meeting decisions and action items, but does not allow arbitrary modification of the minutes.
[0145] System administrator privileges: A system administrator is a role with platform management privileges, responsible for the system's daily operation and maintenance, data backup, user management, and security auditing. Unlike the aforementioned business roles, the system administrator's privileges are not dependent on specific meeting or project affiliations. This embodiment grants the system administrator management privileges, allowing them to perform all operations on minutes documents, including viewing, downloading, editing, deleting, sharing, and assigning permissions, to meet the needs of system operation and maintenance and compliance auditing.
[0146] During download, the following verification process is performed based on the identity of the requesting user: The first step is to obtain a valid identity identifier for the requesting user, including user ID, organization affiliation, and role label.
[0147] The second step is to query the meeting metadata to obtain a list of the meeting creator, host, person responsible for the minutes, the creator's superior, and project team members.
[0148] The third step is to check whether the user belongs to an administrative role (system administrator), a read-write role (meeting creator, host, minutes responsible person), or a read-only role (creator's superior, project team member).
[0149] Fourth, if the user matches any authorized role, a document access token is generated based on the corresponding role's permission type, allowing the user to perform operations within the authorized scope.
[0150] Fifth, if the user cannot be matched in the list of authorized roles, access will be denied and an "No permission" error message will be returned. At the same time, this unauthorized access attempt will be recorded in the security audit log.
[0151] The sixth step involves further verifying, for users with read-only permissions, whether the requested file path matches the meeting's ownership, preventing users from accessing unauthorized meeting minutes by constructing paths. For users with read-write permissions, an additional verification is performed before editing to ensure the operation time is within a preset editing window (e.g., within 72 hours after the meeting ends). If the editing time exceeds the preset window, the user's permissions are downgraded to read-only to ensure the stability of the minutes version.
[0152] The generated minutes document is named "[Meeting Minutes] Project Collaboration Meeting_20260423.docx" and stored on the file server. A QR code is also generated for users to scan and view on their mobile devices.
[0153] Example 2: Meeting Segmentation Acquisition and Minute Export System for Restricted H5 Environments This embodiment, based on the method described in Embodiment 1, provides a system for segmented meeting data collection and minutes export in a restricted H5 environment.
[0154] like Figure 6 As shown, the system architecture is described below: The system frontend is an H5 application running in a mobile browser or embedded in a WebView, which calls the terminal's recording capabilities via JS-SDK. The frontend is built using the Vue3 framework and encapsulates recording control components, status display components, and text editing components.
[0155] The backend adopts a modular monolithic architecture based on FastAPI, with each module working collaboratively within the same FastAPI application through a routing layer and a service layer. For segmented audio recording in WeChat Work, the ` / api / segments` interface handles audio download, transcoding and noise reduction, ASR transcription, segmented database entry, and text aggregation refresh within the request flow. For manual uploading of entire audio segments, the ` / api / meetings / upload-audio / {meeting_id} / complete` interface triggers backend processing via FastAPIBackgroundTasks. Processing progress is recorded using the `status`, `processing_stage`, `processing_progress`, and `processing_error` fields in the database, along with local processing locks, to control concurrency and support failure recovery.
[0156] The system includes the following modules, each of which is further divided into several functional units: 1. Authentication Initialization Module The authorization unit is used to respond to the meeting operation initiated by the user on the H5 page, execute the OAuth authentication process, obtain the authorization code and exchange it for an access token; The user information query unit is used to obtain user identifiers and associated organization, position, project affiliation information and permission roles based on the access token; The meeting initialization unit is used to create a unique meeting identifier, load recording configuration parameters, and send them to the front end.
[0157] 2. Segmented data acquisition and status control module The recording scheduling unit is used to respond to the meeting start command and start the recording tasks of each segment in sequence according to the segment_index order; The energy detection unit is used to acquire audio sampling frames periodically according to a preset frame length and calculate the short-time energy of each sampling frame. The silence determination unit is used to determine the silence window based on noise floor estimation and dynamic silence threshold. When the continuous silence duration reaches silence_window_ms, a silence event is triggered. The segmentation control unit is used to stop the current segmentation when the recording duration enters the protection window range and a silence window is detected, and to perform forced segmentation when the recording duration reaches segment_limit_ms. The state machine management unit is used to maintain a state machine independently for each segment, record the state transition history, and trigger corresponding events when the state changes. The asynchronous upload unit is used to obtain the localId and media_id after segmentation stops, asynchronously upload the segmented audio to the server, and trigger retry logic when the upload fails.
[0158] 3. Boundary Compensation Module The audio-level compensation unit is used to maintain a circular buffer of length boundary_overlap_ms in a runtime environment that supports PCM access. When segmentation stops, it saves a snapshot of the tail boundary. When a logical gap is detected between adjacent segments, it splices the tail snapshot of the previous segment with the beginning audio of the next segment into a compensation segment and performs local ASR. The text-level compensation unit is used to extract the boundary words of adjacent segments in a runtime environment that can only use JS-SDK callbacks. After normalization, the boundary similarity is calculated. When the similarity exceeds the repetition threshold, the matching words are pruned from the head of the next segment. The time axis correction unit is used to update the logical_start_ms and logical_end_ms of each segment based on the compensation results, and uses the logical time axis as the sorting basis for subsequent text aggregation.
[0159] 4. Audio Standardization Module The download unit is used to download the corresponding audio file from the server in response to the segmented upload completion event; The format detection unit is used to detect the audio's container format and encoding type. The transcoding unit is used to perform transcoding operations when the audio format is not the target format (such as SILK, AMR), converting it to a 16kHz, mono, 16-bit PCM format; The noise suppression unit is used to filter out steady-state environmental noise and sudden interference noise using a noise suppression algorithm based on spectral subtraction. Gain control unit, used to normalize waveform amplitude to the target dynamic range using an automatic gain control algorithm; The standardized output unit is used to generate the standard_audio_id for subsequent ASR calls.
[0160] 5. Hot word enhanced transcription module The context construction unit is used to retrieve the historical transcribed text of the K most recent completed segments before the current segment using meeting_id as the index, and construct asr_context_payload by combining meeting metadata, participant information and historical revision feedback; The hot word aggregation unit is used to aggregate candidate words from public hot word libraries, personal hot word libraries, temporary hot words from meetings, and feedback hot words. The weight calculation unit is used to calculate the comprehensive weight of each hot word based on word frequency-inverse document frequency, timeliness, importance in the meeting context, and feedback time decay. The decoding enhancement unit is used to integrate the context payload and dynamic hot word payload into the ASR decoding process to increase the probability of hot words; The conflict resolution unit is used to calculate the contextual probability of candidate word sequences using a domain language model when there are words with similar pronunciations in the hot word library, and select the word with the best semantic match as the final recognition result.
[0161] 6. Text Aggregation and Retention Module The sorting unit is used to stably sort all the transcribed text that has been segmented, with logical_start_ms as the first sorting key and segment_index as the second sorting key. The deduplication and concatenation unit is used to perform boundary deduplication, incomplete sentence concatenation, and illegal character cleanup operations; A dual-layer text storage unit is used to store the above processing results as raw_transcript, and to save the revised results as final_transcript in response to user editing operations, thus preserving the dual-layer structure; The difference analysis unit is used to perform difference analysis on raw_transcript and final_transcript, extract replacement pairs and preference fields, and generate feedback samples for use in updating the hot word library.
[0162] 7. Minutes Generation and Repair Module The template selection unit is used to obtain meeting metadata and select the corresponding Prompt template based on the meeting_type. The model invocation unit is used to input the meeting text into the large language model and generate summary data according to the preset outline structure. When invoking, the temperature=0.2, top_p=0.9, and max_tokens=4096 are configured. The output cleaning unit is used to perform code fence cleanup and invisible character filtering on the model output; The schema parsing unit is used to perform JSON syntax parsing and schema field validation. The repair unit is used to call the lightweight repair interface to re-parse when parsing fails. The lightweight repair interface only repairs JSON format errors and does not modify the business content. The degradation parsing unit is used to perform rule-based degradation parsing when the repair still fails. It extracts key information based on rules such as title keywords, speaker identity, and deadline expression, and marks the parsing result as "degraded generation".
[0163] 8. Document Export and Access Control Module The node transformation unit is used to convert summary_json into a finite set of document nodes, including TITLE, META, HEADING1 / HEADING2, PARAGRAPH, BULLET_LIST, NUMBER_LIST, ACTION_TABLE, RISK_LIST, and PENDING_LIST. The node cleaning unit is used to perform character cleaning, null value unification, list flattening, and ultra-long paragraph splitting on each node. The template mapping unit is used to map the processed document nodes to the corresponding bookmarks, content controls, and repeating blocks in the Word document template; The document generation unit is used to generate archiveable Word documents and store them on the file server; The permission verification unit is used to establish an access control list based on user identity, meeting creator, project team member, and system administrator role, and to verify user identity, meeting affiliation, authorization scope, and download token when downloading documents.
[0164] Example 3: Application Case of Internal Project Collaboration Meetings within an Enterprise This embodiment uses a "product iteration review meeting" of an internet company as an example to further illustrate the deployment and operational effect of the technical solution of the present invention in a real-world scenario. The company's mobile office platform embeds an H5 meeting module, holding an average of over 80 meetings of various types daily, with participants distributed across multiple R&D centers in different regions.
[0165] Scene Overview: Meeting Type: Product Iteration Review Meeting Attendees: 12 people (1 product manager, 1 project manager, 6 development engineers, 3 test engineers, and 1 operations engineer) Meeting duration: Approximately 75 minutes Technical terms involved: iteration cycle, requirement priority, regression testing, canary release, hotfix, CI / CD pipeline Implementation process: The meeting initiator accessed the H5 meeting page through the enterprise mobile office APP, and the system completed the authentication initialization according to step one of Example 1. After the meeting started, the front end performed adaptive segmented audio acquisition according to step two. A total of 92 audio segments were generated during the entire meeting, with an average segment length of approximately 49 seconds. The longest segment was a forced cut of 54 seconds, and the shortest segment was a silent cut of 6 seconds (a brief pause for participants to think). During the segment switching process, the user did not perceive any recording interruption or stuttering.
[0166] Within 10 seconds of the meeting ending, the system completed the uploading, standardization, and transcription of all 92 segments. The boundary compensation mechanism in step three detected 3 boundary duplicates (one of which was the repeated appearance of the word "regression test" in an adjacent segment) and automatically pruned them. It also detected 2 logical gaps (due to network jitter causing the segments to be uploaded out of order) and completed timeline correction based on the word timestamps.
[0167] Step five, dynamic hot word enhancement transcription, effectively improved the recognition accuracy of the proprietary terms involved in this conference: increasing the recognition accuracy of "CI / CD" from 67% in the general ASR to 94%, and the recognition accuracy of "hot repair" from 72% to 96%. The contextual payload referenced the historical text of the preceding segment, "the iteration cycle was adjusted from two weeks to three weeks," ensuring that the "adjusted cycle" in subsequent segments was accurately associated with "three weeks," avoiding ambiguous references.
[0168] The summary data generated in step seven includes 4 topics (discussion on requirement priority, adjustment of iteration cycle, test plan review, and deployment risk assessment) and 16 action items. Among them, the owner of each action item was successfully matched with the name of the participant, and the accuracy rate of extracting the deadline reached 89% (explicit expressions such as "complete test case review before this Friday" were successfully extracted, while vague expressions such as "complete as soon as possible" were marked as "pending confirmation").
[0169] After being formatted and formatted, the Word document exported in step eight conforms to the company's "Meeting Minutes Specification" standard in terms of title style, table structure, and action item format. The document size is 168KB and can be directly archived to the company's document management system.
[0170] In this embodiment, after the system is deployed on the mobile office platform of the internet company, the following performance data is obtained by comparing and analyzing the manual recording method and the automatic generation method of the same meeting: Regarding the time spent on minutes compilation: When using manual recording, the average time for compiling minutes after a meeting is approximately 45 minutes, including audio playback, key point extraction, formatting, and confirmation by multiple parties. Using the automatic generation method described in this embodiment, the average time from the end of the meeting to exporting the minutes document is approximately 12 seconds, representing a significant time reduction.
[0171] Regarding the completeness of action items: When using manual recording, the completeness rate of action items is approximately 68%, with an average of 5 to 6 non-critical tasks omitted per meeting, and action items on some peripheral issues easily overlooked by the recorder. After adopting the automatic generation method of this embodiment, the completeness rate of action items reaches 97%, with an average of only 1 non-critical task omitted, achieving full coverage of key decisions and core action items.
[0172] Regarding the recognition rate of proper nouns: When using manual recording methods, the accuracy of proper noun recognition is highly dependent on the recorder's familiarity with the business domain. Newly hired recorders have a recognition rate of less than 50% for professional terms. After adopting the automatic generation method in this embodiment, the average recognition rate of proper nouns reaches 91.5%, with the recognition rate of high-frequency terms and project-specific abbreviations exceeding 95%.
[0173] Regarding the first-time compliance rate for formatting: When using manual recording methods, approximately 55% of the minutes passed the company's standard verification on the first attempt, while about 45% required secondary adjustments to the title style, table structure, or list format. After adopting the automatic generation method in this embodiment, through doc_nodes normalization and Word template mapping, the minutes format perfectly matches the company template, achieving a 100% first-time compliance rate, and can be directly archived without manual adjustments.
[0174] Example 4: Application Case of Online Cross-Regional Multi-Party Meeting This embodiment uses a "cross-regional project kick-off meeting" of a design institute as an example to illustrate the adaptability of the present invention under multi-regional and multi-network conditions. The meeting involved nine participants located in Shanghai, Beijing, and Chengdu, who accessed the H5 meeting through the platform.
[0175] Scene characteristics: The participants were located in three different regions with varying network environments, resulting in differences in network latency and stability. During the meeting, multiple people spoke alternately, and some participants were on the move (using mobile phones to access the meeting). The meeting lasted approximately 110 minutes and involved a large number of technical terms (such as "preliminary design budget", "construction drawing review", "budget-limited design").
[0176] Implementation process: Due to differences in network conditions, the asynchronous uploads of segments arrived at the server out of order: the upload completion time of segment 15 (Beijing) was later than that of segment 16 (Chengdu), and the upload of segment 17 (Shanghai) was completed before that of segment 16. In Example 1, step two, the state machine management unit recorded the actual_stop_time and upload completion time of each segment. Step three, the boundary compensation module, used logical_start_ms as a unified benchmark to sort the text, thus avoiding text corruption caused by out-of-order uploads.
[0177] For voice acquisition during movement, the dynamic silence threshold mechanism in step two adaptively improves tolerance to background noise: when the noise level is consistently higher than the threshold, the silence judgment threshold is automatically raised to avoid misjudging valid voice as silence and causing excessive segmentation. A total of 173 segments were generated throughout the conference, and the segmentation point offset due to movement was within an acceptable range; no valid voice was cut off due to silence.
[0178] Step five, the enhanced transcription of hot words, pre-loaded the project's proprietary thesaurus (synchronized from the project management system), including 8 organization names, 15 technical terms, and 23 participant names. After transcription, the overall accuracy of proper noun recognition reached 93.5%, with "limited budget design" increasing from 58% in the general ASR to 91%, and "preliminary design budget" increasing from 49% to 87%.
[0179] The summary data generated after the meeting was processed by the degradation parsing unit in step seven: One parsing attempt failed due to an incorrect JSON format (an extra comma at the end), but the lightweight repair interface automatically corrected the formatting error, resulting in successful parsing. The entire repair process took less than one second, imperceptible to the user.
[0180] Example 5: Adaptive Minutes Template and Hierarchical Access Control Scenario This embodiment uses a government agency's "government coordination meeting" as an example to illustrate the template adaptive capability and multi-level permission control mechanism of the present invention under different meeting types.
[0181] Scene characteristics: Meeting type: Government coordination meeting; the required minutes format differs significantly from that of a company's "project advancement meeting". Confidentiality level of the minutes: Internal and sensitive, access must be strictly restricted; Participants include: organizers, co-organizers, and attendees; different roles have different access permissions to the minutes.
[0182] Implementation process: In the configuration parameters loaded in step one, the `meeting_type` value is set to "Government Coordination Meeting". The template selection unit in step seven matches the corresponding Prompt template and outline structure from the template library based on `meeting_type`. The differences between the outline structure of a Government Coordination Meeting and a Project Promotion Meeting are as follows: Add a "Participating Units" field to differentiate between "Organizers", "Co-organizers", and "Attendees"; The topic structure has been expanded to include two sub-fields: "Opinion of the Organizing Department" and "Opinion of the Co-organizing Department". The action item now includes a "Supervisory Unit" field; The risk item now includes the fields "Scope of Impact" and "Emergency Plan".
[0183] The system automatically switches the outline structure according to the type of meeting, without the need for manual intervention or secondary editing.
[0184] Step eight's permission verification establishes tiered permissions based on user identity: Participants from the organizing unit (3 people in total): Read and write access to the complete minutes; Participants from co-organizing units (5 people in total): They only have access to read the topics and corresponding action items related to their own unit; other topics will be displayed in an anonymized manner. Attendees (2 people in total): They only have read-only access to the full text summary and cannot view the specific discussion content and action items; Minutes archiving personnel (system administrator role): They only have the permission to download and archive documents, and do not have editing permissions.
[0185] During download, a subset of doc_nodes corresponding to the permission level is dynamically generated based on the identity of the requesting user. The same meeting minutes present different field contents according to different roles, effectively meeting the hierarchical confidentiality requirements in government scenarios.
[0186] The above description is merely a preferred embodiment of the present invention and is not intended to limit the scope of protection of the present invention. It should be understood that those skilled in the art can make several improvements and modifications to the technical solutions described in the above embodiments, or make equivalent substitutions for some of the technical features, without departing from the principle of the present invention. These improvements, modifications, and equivalent substitutions should also be considered within the scope of protection of the present invention.
[0187] Any modifications, equivalent substitutions, improvements, etc., made within the spirit and principles of this invention, as well as the application of the technical solutions of this invention to other limited operating environments with similar limitations (limited single-segment recording duration, unstable callbacks, lack of streaming recording interfaces) other than the H5 environment, should be included within the protection scope of this invention.
[0188] The methods and systems described in this invention can be implemented in software, hardware, or a combination of both. The functional modules or units described in this invention can be integrated into a single processing unit, or each unit can exist independently, or two or more units can be integrated into a single unit. The integrated units described above can be implemented in hardware or as software functional units.
[0189] Furthermore, the scope of protection of this invention should not be limited by specific numerical values, specific scenarios, specific company names, or specific parameters in the embodiments. These specific details are only used to fully disclose this invention and explain its technical solutions, and should not be construed as limiting the invention. The scope of protection of this invention is defined by the appended claims.
Claims
1. A method for conference segmentation acquisition and minutes export oriented to a restricted H5 environment, characterized in that, include: In response to meeting operations, create a meeting identifier and load recording configuration parameters including the maximum duration of a single recording segment and the duration of the protection window; Start segmented recording and determine the mute window based on short-time energy and dynamic mute threshold; When the recording duration enters the protection window range, if a mute window is detected, the current segment is stopped; otherwise, the segment is forcibly cut when the upper limit is reached. After the segment stops, it is uploaded asynchronously and the next segment is started immediately. Based on the overlap duration of the boundary, cache the audio snapshot at the end of the segment, concatenate the end of the previous segment with the beginning of the next segment for local transcription; calculate the similarity of the boundary words of adjacent segments, and if it exceeds the threshold, prune the matching words at the beginning of the next segment; update the logical start time of each segment based on the compensation result. Using the conference identifier as an index, a contextual payload is constructed based on the historical transcribed text, and dynamic hot word payloads are generated by aggregating multi-source hot words; the two types of payloads are integrated into speech recognition decoding to generate segmented transcribed text; The original transcribed text is generated by sorting and concatenating the transcribed text based on the logical start time, while the user-revisioned version is retained as the final transcribed text. Select the prompt word template based on the meeting type, input the meeting text into the large language model to generate minutes data, and then perform format cleaning, outline parsing and downgrade parsing in sequence; The minutes data is converted into a finite set of document nodes, cleaned and normalized, then mapped to a document template, and download permissions are verified based on user roles.
2. The method for segmented data collection and minutes export in a restricted H5 environment according to claim 1, characterized in that, The specific method for determining the mute window based on short-time energy and dynamic mute threshold is as follows: Based on the short-time energy values of the most recent frames, a sliding median filter is used to estimate the noise floor. The noise floor is added to a preset margin to obtain the dynamic mute threshold. When the short-time energy of multiple consecutive frames is less than the dynamic mute threshold, it is determined to be a mute window.
3. The method for segmented data collection and minutes export in a restricted H5 environment according to claim 1, characterized in that, In segmented recording, a state machine is maintained independently for each segment. The state machine includes states such as recording in progress, stopped, uploading in progress, transcribing in progress, completed, waiting for retry, and failure. When uploading or transcribing fails, the state machine enters the waiting for retry state and retryes according to the exponential backoff strategy. After the maximum number of retries is exceeded, the state is set to the failure state.
4. The method for segmented data collection and minutes export in a restricted H5 environment according to claim 1, characterized in that, Specifically, the tail audio snapshot based on boundary overlap duration is: maintain a circular buffer with a capacity equal to the boundary overlap duration, and save the audio data in the circular buffer as a tail boundary snapshot when segmentation stops.
5. The method for segmented data collection and minutes export in a restricted H5 environment according to claim 1, characterized in that, The similarity of adjacent segment boundary words is calculated by the maximum value of the longest common subsequence ratio and the edit distance similarity; when the absolute value of the logical gap between adjacent segments exceeds a preset threshold and there is no valid word timestamp covering the gap interval, the local transcription is triggered.
6. The method for segmented data collection and minutes export in a restricted H5 environment according to claim 1, characterized in that, The aggregation sources of dynamic hot word payloads include public hot word libraries, personal hot word libraries, temporary hot words for conferences, and hot words from historical revision feedback; the comprehensive weight of hot words is calculated based on at least one or more factors, including word frequency statistical characteristics, relevance to the current conference context, and the time decay effect of feedback samples.
7. The method for segmented data collection and minutes export in a restricted H5 environment according to claim 6, characterized in that, When the target hot word forms an alias relationship with an existing hot word in the hot word library, the alias relationship is identified by editing distance or pronunciation similarity, and the preset weight is inherited from the existing hot word.
8. The method for segmented data collection and minutes export in a restricted H5 environment according to claim 1, characterized in that, The sequential execution of format cleanup, outline parsing, and downgrade parsing is as follows: After cleaning the model output by code fences and invisible characters, the JSON parser is called to perform syntax parsing and outline field validation; if parsing fails, the lightweight repair interface is called to re-parse, which only fixes JSON format errors without modifying business content; if parsing still fails, rule-based downgrade parsing is executed, extracting information based on title keywords, speaker identity, or deadline expression, and marking the parsing result as downgraded generation.
9. The method for segmented data collection and minutes export in a restricted H5 environment according to claim 1, characterized in that, The node types of the finite document node set include title nodes, metadata nodes, title level nodes, paragraph nodes, list nodes, task table nodes, risk list nodes, and to-do list nodes; the cleaning includes removing control characters, zero-width characters, and illegal XML characters; the normalization includes unifying null values, flattening lists, and splitting excessively long paragraphs, wherein unifying null values includes replacing empty strings with "none" or "to be supplemented", and replacing JSON null values or database NULL values with corresponding placeholders according to node type.
10. A system for segmented data collection and minutes export in a restricted H5 environment, characterized in that: The system includes: The authentication initialization module is used to respond to conference operations, create a conference identifier, and load recording configuration parameters including the maximum recording duration of a single segment and the duration of the protection window; The segmented acquisition and status control module is used to start segmented recording, determine the silence window based on short-time energy and dynamic silence threshold; when the recording duration enters the protection window range, if a silence window is detected, the current segment is stopped; otherwise, when the upper limit is reached, the segment is forcibly cut; after the segment stops, it is uploaded asynchronously and the next segment is started immediately; and a state machine is maintained independently for each segment. The boundary compensation module is used to cache the audio snapshot at the end based on the boundary overlap duration, splice the end of the previous segment with the beginning of the next segment for local transcription; calculate the similarity of the boundary words of adjacent segments, and if it exceeds the threshold, prune the matching words at the beginning of the next segment; and update the logical start time of each segment based on the compensation results. The audio normalization module is used to perform audio transcoding, noise suppression, and volume normalization. The hot word enhancement transcription module is used to construct contextual payloads based on historical transcribed text, using conference identifiers as indexes, and to aggregate multi-source hot words to generate dynamic hot word payloads; the two types of payloads are integrated into speech recognition decoding to generate segmented transcribed text; The text aggregation and retention module is used to sort and concatenate the transcribed text based on the logical start time, generate the original transcribed text, and retain the user's revised version as the final transcribed text. The minutes generation and repair module is used to select prompt word templates based on meeting type, input the meeting text into the large language model to generate minutes data, and then perform format cleaning, outline parsing and downgrade parsing in sequence. The document export and access control module is used to convert the minutes data into a limited set of document nodes, clean and normalize them, map them to document templates, and verify download permissions based on user roles.