This application claims priority to G.B. Application No. 1516552.5, filed Sep. 18, 2015, entitled Keyword Zoom, the disclosure of which is incorporated herein in its entirety by reference.
Packet-based communication networks such as the Internet have developed to allow highly efficient transmission of large quantities of communication traffic between users of different user terminals as part of a communication system. Communication data can be exchanged over the packet-based network via a server that is suitable for routing communication data between the user terminals of two or more users.
To participate in a communication session each user runs a communication client application on his or her respective terminal. When the user runs the communication client, the client allows the user to make or accept contact requests to or from other users of the communication system and thereby become pre-agreed contacts, and to then establish a communication connection with one or more of those contacts so as to send and receive communications over the network. There may be other ways that the user can make or accept contact requests to or from other users of the communication system e.g. by way of an email invitation. In a communication session between connected users, the users may use their respective user terminals to transmit a stream of encoded communication data over the network to be received by the one or more other user terminals connected in the communication session. Transmitted data streams may be processed at the server and forwarded to each of the other user terminals participating in the communication session.
The communication data can include user-captured audio and/or video data and text based messages (Instant messaging, IM) as part of a one-to-one call between two user terminals or a conference call between three of more user terminals. The communication clients can also be used to communicate other data, for example allowing users to share files such as contact details, documents and/or media files. The communication client may also have the ability to interact with other applications so that data associate with those applications can be shared. For instance, a first user terminal can be used to present a slideshow presentation that can be shared live as part of a communication session.
The communication data is typically exchanged in real-time so that communications sessions are conducted live, although some communication systems may also provide a cloud storage system which can store messages and record entire communication sessions so that they can be subsequently downloaded by user terminals. A communication session involving audio-visual data may be recorded and stored at the cloud storage medium in the form of a video file. The recorded communication session video file may be downloaded and played back by one of the user terminals that was invited to be part of the recorded communication session. This may be useful in the event that one or more contacts invited to be part of a particular communication session is offline or otherwise unable to join that communication session. Another reason is that a user may simply want to re-watch or listen back to the communication session that he was part of. The downloaded video recording can be played back through a media playing application and controlled according to the watching user's preferences. In some cases an automatic speech recognition engine can be used to transcribe recorded speech to text. Natural Language Processing techniques can be used to extract keywords and keyphrases from the text in order to provide a visual summary of the communication session to a user.
The inventor of the present disclosure has realised that when a visual summary of a communication session is displayed on a user terminal screen, each segment or event in a recording is visually represented in only one way. For example, a portion of recorded speech may be transcribed into a single block of text and displayed to the user. In some scenarios the transcription may be useful to a user in order to help him navigate through the recording to parts that he finds interesting. However, at other times the transcription may be particularly annoying and clutter the screen by providing a level of detail that the user simply does not need to know about. Alternatively, the transcription or visual representation may not provide enough detail. In this case the user may decide to turn off the visual summary altogether as it ends up serving little purpose to the user.
Therefore it would be desirable if each portion of a recorded communication session was visually represented in multiple different ways each with a varying degree of detail. By allowing the user to control what level of detail he sees, the user can access a more detailed summary if necessary or a cleaner, more compact summary if a less detailed summary is acceptable. The user will be able to quickly and conveniently navigate through the recorded communication session seeing all of the information he needs but without facing the limitation of each visual representation only being displayed in one way.
According to a first aspect of the present disclosure, there is provided a method for automatically selecting one or more portions of text data, said text data being converted from one or more communication streams of a communication session, the method comprising: accessing, by a user terminal, the communication session in the form of a media file; accessing by the user terminal, temporal metadata associated with the media file, wherein the metadata defines events determined to have occurred during the communication session; displaying, in a user interface of an application running on the user terminal, one or more portions of the text data, said events being represented by ones of said portions; respectively assigning each of the portions with a relevance value; and associating each unique relevance value with a respective zoom level of the user interface so that said displaying of the text data comprises the application selecting for display one or more of said portions of text at different zoom levels of the user interface based on the relevance value respectively assigned to each portion.
According to a second aspect of the present disclosure, there is provided a user terminal for automatically selecting one or more portions of text data converted from one or more communication streams of a communication session, the user terminal comprising: a processor and at least one storage element, together configured to: access and store the communication session in the form of a media file; access temporal metadata associated with the media file, wherein the metadata defines events determined to have occurred during the communication session; a visual display unit; an application running on the processor, the application configured to: play back the media file; display, in a user interface of the application displayed by the visual display unit, one or more portions of the text data, said events being represented by ones of said portions; respectively assign each of the portions with a relevance value; and associate each unique relevance value with a respective zoom level of the user interface so that said displaying of the text data comprises the application selecting for display one or more of said portions of text at different zoom levels of the user interface based on the relevance value respectively assigned to each portion.
According to a third aspect of the present disclosure, there is provided a client application suitable for playing back media files, the application embodied on a non-transitory computer-readable medium and comprising code configured so as when run on a user terminal to perform the above-described method of the first aspect of the present disclosure.
This summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This summary is not intended to identify key features of essential features of the claimed subject matter, nor is it intended to be used to limit the scope of the claimed subject matter.
For a better understanding of the present invention and to show how it may be put into effect, reference is made by way of example to the accompanying drawings in which:
Each of the connections between a user terminal 102 and the network 108 may comprise a link via a wired or wireless modem, and may or may not be made via another network such as a local area network or packet-based service of a cellular network operator, etc. Although network 108 is referred to as being a packet-switched network, it may instead be implemented as a circuit-switched network. Details of the various possible arrangements for accessing the Internet will be familiar to a person skilled in the art. Each of the user terminals are shown associated with a user A, B, C. It will be appreciated there may be more or fewer user terminals than those shown by
In order to implement the communication system for transmitting and receiving communication data between contacts, each of a plurality of user terminals 102 is installed with a respective instance of a communication client application 222, as shown in
The communication client may be configured to enable remote screen between two or more user terminals 102. Further still the communication client application may be configured to interact with a number of other applications running on the user terminal 102. In this way a first user may share their perspective of using one or more of these other applications at their user terminal 102 and share it with the other user terminals 102 in the communication session. For example a first user terminal (e.g. 102a associated with user A) may run a slideshow presentation application in order to share a pre-prepared presentation with one or more other users in a communication session. The communication client 222a may be able to access or otherwise interact with the slideshow application in order to generate communication data that represents the presentation and that can be transmitted to the other user terminals 102 in the communication session 102. For example all audio-visual elements of the presentation can be encoded as audio and video data and transmitted to the other user terminals 102 as part of the communication session. Thus the presentation is shared between the first user who may be giving the presentation and the one or more other users in the communication session who receive the presentation. While the first user is sharing his presentation, the users may still transmit other communication data. So for example the first user (presenter) can provide an audio visual commentary to his presentation and a discussion can be held between all of the users in the communication session. The presenter, and/or one or more of the other users with permission from the presenter, may be able to interact with the presentation itself by adding visual or audible annotations at one or more points in the presentation.
In embodiments a presentation could be remotely hosted from two or more user terminals 102 running respective instances of the application handling the presentation. Although a slideshow presentation is used in the above example, a presentation may take various different forms, including sharing of a document and the sharing of or audio and/or visual media e.g. playing a video or audio file.
As shown in
In operation, the I/O layer 224 handles the lower-level codecs for encoding and decoding text, voice and/or video communications for the purpose of transmission and reception over the network 108. The client engine 226 is then responsible for managing a list of contacts and for establishing communication channels with the AV MCU server 104a. The UI layer 228 is responsible for outputting an on-screen user interface to the user via the display 208, including on-screen controls for managing communications.
The terminal 102 may be installed with one or more instances of other applications, each represented in
Alternatively or in addition to a user terminal 102 being installed with one of the other applications 240, the user terminal may be configured to access a web version of an application online. For example the user terminal 102 may be installed with an internet client application 260 (web browser) suitable for accessing a remote online application over the network 108. The cloud meeting platform 105 may be configured to host and run one or more such online applications 340. The communication client 222 is able to interact with the internet client application 260 so that the communication data can include data relating to the online application e.g. a screen share presentation can be shared in a communication session based on using an online slideshow application.
Referring to
The cloud meeting platform 105 further comprises an event store 314 for storing metadata event files that represent the occurrence of events detected during an analysis of the recorded communication data streams by the communication analysis software modules 300, the process of which is described in more detail below. As mentioned above, the cloud meeting platform 105 may further host and run one or more online applications. Events can also be detected (and a visual representation of them stored) when one of the other applications 240 or online applications 340 running on the cloud meeting platform 105 are used for example to edit, interact with and/or share data as part of a communication session.
Referring to
At step 404 the received communication data streams of each communication session are stored at the non-volatile storage medium 352 such that each communication session is recorded. At step 406 after the communication data streams have been stored they are analysed to determine events that occurred during each communication session. This involves the cloud meeting platform 105 applying one or more of the communication analysis software modules 300 to each of the stored communication streams as appropriate. For example the video analysis engine 310 will only be applied to video streams while the screen share/slide analysis engine 312 is only applied to screen sharing streams. The analyses are performed in order to determine events that have occurred during a communication session. The steps 402 to 406 may be performed in real-time, i.e. during a communication session as it is happening. In this scenario, the cloud meeting platform 105 interacts with the AV MCU 104a to record the communication data streams and analyse them in real time.
Alternatively, rather than recording the independent communication streams in real-time, a recording of a completed communication session may be accessed and analysed at the cloud meeting platform 105. For example, the recording of the communication session may be a video or audio file. The video or audio file may be generated by the AV MCU 104a or another server associated with the communication system (not shown in
The following provides some examples of the analyses that are performed as part of step 406. The stored audio data streams may be input to the Automatic Speech Recognition engine (ASR) 302. A suitable ASR 302 is the Microsoft Bing® ASR service. The ASR 302 works by running a series of algorithms that will be known to those skilled in the art of speech recognition techniques. The ASR 302 may be configured to recognise audio speech data in more than one language. The ASR 302 converts the stored audio speech data and outputs text data in the recognised language as a full text transcript of the communication session. The full text transcript may in itself be considered as a visual representation of an event of the communication session (or as a portion of text data as described later). The converted output text may be input to the NLP engine 306 so that keywords (and/or keyphrases) can be extracted from the converted output text. However, if the NLP 306 is only able to recognise and extract keywords in a particular language, the converted output text can first be input to an automatic speech translation engine 304. An example of a suitable speech translation engine 304 is the Microsoft Bing® translation service. The speech translation engine 304 uses known language processing algorithms to convert the input text from a first language into a second language which is compatible with the NLP 306.
NLP 306 receives the converted output text (translated if necessary) so that it can automatically extract keywords that might of interest to a user that subsequently plays back a recorded communication session. The NLP 306 may comprise a number of known algorithms and techniques in order to extract the keywords. These algorithms may include machine learning algorithms for keyword and keyphrase extraction such as “C4.5” and “GenEx” as described in “Learning algorithms for keyphrase extraction” by Turney, Peter D. (2000) (http://dx.doi.org/10.1023/A:1009976227802); and/or “TextRank”—a graph-based ranking model for text processing described in “TextRank: Bringing Order into Texts” by Mihalcea et al., (2004) (http://web.eecs.umich.eduhmihalcea/papers/mihalcea.emnlp04.pdf).
Other known NLP methods used by the NLP 306 may include the Microsoft Azure Machine Learning API which is configured to take the (translated) converted output text of the ASR 302 as an input and return a list of strings denoting the key talking points in said input text. The API employs techniques known from Microsoft Office's® sophisticated Natural Language Processing toolkit.
In summary the NLP 306 detects keywords and keyphrases that for example have a positive or negative intent. The NLP 306 may also extract keyphrases of an input text string determined to have a positive or negative sentiment. Further, dates and times recognised in the input string may be extracted as keywords. Also calendar events and locations can be extracted as keywords. The skilled person will understand that other types of keywords and keyphrases may be extracted by the NLP 306.
Each of the individual keywords and keyphrases extracted by the NLP 306 constitute the detection of an event by the NLP 306. A representation of each event detected by the NLP 306 is stored (as described later at step 408) wherein each of the representations include the extracted keyword or keyphrase text, represented as a portion of text.
The stored audio data streams are also input to the audio analysis engine 308. The audio analysis engine may receive the audio data streams in parallel with the ASR 302. The audio analysis engine 308 analyses the audio properties of the input audio data for example to determine occurrences of silence, laughter, shouting, changes of speaker (user) in the communication session. Each time such a determination is made by the audio analysis engine 308 an event is generated and stored (as described below at step 408). Events determined by the audio analysis engine 308 are stored so that the event includes text based details of the occurrence of the audio event e.g. “[Applause]”, “[Silence]”, “[User X speaks]” and so on.
The stored video data streams are input to the video analysis engine 310. The video analysis engine 310 may use algorithms to analyse the visual nature of the video data for example to determine occurrences of gestures made by speakers (users) in the communication session, a visual ID displayed for a user, a significant change in the captured video. Examples of changes determined in the captured video may include a change of room or viewpoint and one or more users entering and/or leaving a room e.g. “user B has joined the session” or “user C has moved away from the camera”. Identifying the user who has entered or left the room may be based on the video analysis engine 310 using facial recognition software. The facial recognition technique may be useful so that two or more users captured in a single video scene (e.g. co-presenters) may be determined to be two distinct users in the communication session. Each time a determination of any of these occurrences is made by the video analysis engine 310, an event is generated and stored (as described below at step 408). Representations of the events determined by the video analysis engine 310 are stored so that the representations of the events include text based details of the occurrence of the video events e.g. “[Scene change]”, “[Gesture: point]”; “[Gesture: wave]” sign language gestures and so on.
If screen sharing (including a slideshow presentation) is being performed as part of the communication session then the stored screen share communication data is input to the screen share/slide analysis engine 312. For example Optical Character Recognition (OCR) techniques may be used to analyse displayed text or handwritten annotations in a shared document. In scenarios where the screen sharing involves a digital presentation, OCR may not be necessary (e.g. sharing slides in slideshow presentation). When a first user in the communication session has given a presentation using a slideshow, the screen share/slide analysis engine 312 can determine when a new slide has been displayed, automatically extract the text of slide titles, as well as content within slides e.g. headings, subheadings, highlighted text and the like. Each time such a determination is made by the screen share/slide analysis engine 312 a representation of the event is generated and stored (as described below at step 408). Representations of events determined by the screen share/slide analysis engine 312 are stored wherein a representation includes the extracted text. When the screen share/slide analysis engine 312 determines that a new slide has been displayed and that slide has no title, the stored representation of the event may simply include text indicating the slide number (e.g. “Slide 3”).
Occurrence of events may also be determined when any of the other applications 240 or online applications 340 running on cloud meeting platform 105 were used to transfer data in some way. For instance if one or more of the users in a communication session invoke one of the other applications 240 or online applications 340 its use may be determined as an event of a particular communication session. As one example, one or more users in the communication session can take notes during the communication session, by typing text or entering freehand annotations into a digital note-taking application e.g. Microsoft OneNote® (which is an example of an “Office 365” ® App 342 as shown in
As another example, edits on a document that is being shared may be recognised by the online application associated with handling the document. For example if any of the users in the communication session uses Microsoft PowerPoint® to edit a slideshow presentation, then the online PowerPoint application (another example of an “Office 365” ® App) running on the cloud meeting platform 105 recognises the edit and generates a representation of the event for the edit. The generated representation of the event includes text based details of the edit e.g. “[Additional text added by user X]”. The edit itself is also recorded as part of the recording of the communication session so that it can be seen when the recorded communication session is subsequently accessed and played back at a user terminal 102.
As another example a first user may use a photo application on his user terminal 102 to take and share a photo during a communication session. An online photo app 344 running on the cloud meeting platform 105 recognises that a photo has been shared and generates a representation of the event which includes text based details of the photo being shared e.g. “[Photo shared by user X]”. In this case it may not be possible to record the sharing of the actual photo for subsequent playback at a user terminal 102. Instead the photo may be stored in the memory 352 of the cloud meeting platform 105 so that a user terminal 102 can access and download the photo at the appropriate point when playing back the recorded communication session.
Similarly in another example, a first user may share a contact card, participant list and/or calendar event data during a communication session. An appropriate online application such as Microsoft Outlook® or Microsoft Exchange® 346 running on the cloud meeting platform 105 recognises that such data has been shared and generates a representation of the event which includes text based details of the data being shared e.g. [New contact card received from user X], [new participant list receive from user X], and/or [new calendar event received from user X]. In this case it may not be possible to record the sharing of the actual data for subsequent playback at a user terminal 102. Instead the data may be stored in the memory 352 of the cloud meeting platform 105 so that a user terminal 102 can access and download the data at the appropriate point when playing back the recorded communication session.
At step 408 resultant events determined from the analyses performed by the communication analysis software modules 300 are stored at the event store 314. The events may be represented and stored as event files 318 in the JavaScript Object Notation (JSON) format, although other formats may be used. Each event file 318 includes text and/or other visual representations for the event, a timestamp of when that event occurred during the associated communication session and an assigned relevance value (described in more detail below). The visual representation may be a portion of text data including text extracted from the full text transcript of the recorded communication session. The portion of text can be displayed and matched back with the recorded communication session when it is subsequently played back. Thus the events may be represented by a series of temporal metadata associated with a recorded communication session. The event files 318 may be concatenated so that a single analysis result file 320 is stored for each recorded communication session. The event store 314 may be a secure store that requires authentication for access e.g. a known authentication method such Active Directory authentication can be used before the metadata can be accessed.
In embodiments, as the data representing the metadata events are stored to the event store 314, a relevance module 356 may run an algorithm to assign a relevance value to each portion of text that represents an event. For example, certain portions of text may be determined to have the greatest relevance, such as the title of a slide in a slideshow presentation. The relevance value assigned may be an integer with higher value integers assigned to the most relevant portions of text. The range of assigned values may depend on the number of different types of event to have occurred in the recorded communication session. In embodiments portions of text representing some types of events may be deemed more relevant or more important than the portions of text representing other types of events and so are assigned a higher relevance value accordingly. In addition, different relevance values may be assigned to portions of text that represent events of the same type. For example, different keywords or keyphrases determined from the NLP analysis 306 are portions of text that may each be assigned a different relevance value level based on a comparison of the content of those determined keywords (or keyphrases).
A relevance value assigned to a portion of text representing a current event may be influenced by one or more relevance values respectively assigned to representations of one or more other events that occur soon after or before the current event occurs in the communication session. As an example, an audio event may be detected when the user who is speaking in the communication session changes. The representation of this audio event may be deemed to be important by the relevance module 356. The representation of the audio event is thus assigned a correspondingly high relevance value. In response, representations of events that occur within a predefined period of time following the change of speaker event may each be assigned a relevance value that is increased relative to the value that it would otherwise have been assigned. Therefore the importance of the change of speaker audio event is reflected in the representations of these following events.
At step 410 the stored communication data streams associated with a particular communication session are processed together and formatted into a media file 316 that may be stored at the non-volatile storage medium 352. That is, all of the received video and audio data streams of a communication session are synchronised into a media file 316 that recreates the communication session from start to end. Depending on the types of communication data streams, the media file 316 may be a video file or an audio file. For example, if the received data streams for a communication session comprise only audio data streams, then the data streams may be formatted into an audio file. For convenience we make reference to a video file 316 hereinafter. The step of generating and storing a video file 316 may be initiated by the cloud meeting platform 105 immediately upon receipt of the communication data streams at step 402. The video file may in any suitable format including but not limited to MP4, mpg, AVI, FLV, WMV, MOV.
In the main embodiment described the disclosure relates to a screen sharing method whereby one or more users shares a slideshow presentation. In this scenario, the output video for all of the receiving user terminals in the communication session will be the same. Therefore for any users wanting to subsequently play back the recorded communication session, the video file 316 will be the same for each user.
In alternative embodiments within the scope of the disclosure the communication session includes a videoconference interface whereby each communication client in a communication session is configured to output a video of the other user(s) in the session. The cloud meeting platform 105 may be configured to generate respective versions of the video file 316 where there is one for each of the users that took part in the call, plus a version for other users that were not part of the call. For example, if a user that took part in the call wants to play back the recorded session, his user terminal 102 will be able to access the video file 316 that is associated with him. This is so the user can re-experience the communication as it was originally displayed to him when the session was originally conducted. This is useful because a videoconference interface will usually be displayed differently at each respective user terminal 102 in the call. For users that did not take part in the communication session, a generic video file may be generated for these users in which all of the users that took part in the session are represented. In a further embodiment the cloud meeting platform 105 may be configured to generate and store only one video file 316 that is the same for all users that wish to subsequently pay back the recorded communication session. Examples in this scenario may include a video recording of a lecture or keynote presentation.
At step 412 the cloud meeting platform 105 associates all of the metadata (i.e. the event files 318 or analysis result file 320) from a communication session with the appropriate video file 316 for that session. The metadata may be encoded as part of the generated video file 316 itself, or it may remain separate from the video file 316, for example as a stream of side data. When encoded as part of the generated video file 316 (e.g. in MP4 format), the metadata may be embedded in the video file in a standard metadata format that may be recognised by the majority of standard media playing applications 280 and/or web clients (web browsers) 260. Such media playing applications 280 and web clients 260 may support the use of metadata for instance to navigate through chapters of a video and/or display the metadata in various ways (e.g. subtitles). These applications may be able to utilise the majority of the metadata described in the present disclosure. However, a new media playing application 280 and/or web client 260 that are configured to recognise the full range of metadata disclosed herein may need to be installed on the user terminal 102 so that a user can enjoy the full experience as disclosed herein.
The side data may include all of the event files 318 (or the single result analysis file 320). Alternatively, the side data may include a full transcription of the communication session as output by the ASR 302. The transcription may include text and indications of other visual representation (e.g. graphical icons). The user terminal 102 receives the transcript and may determine the occurrence of events and store metadata event files at the local memory storage 204, based on an analysis of the transcription performed at the user terminal 102.
In still further embodiments, the determination and storage of events (metadata) may be performed by the user terminal 102. For example the processor 200 of user terminal 102 may be configured to analyse the retrieved media file 316 directly itself and determine the occurrence of events from the recorded communication session. To achieve this, the user terminal may be configured with one or more analysis modules (not shown) similar to the communication data analysis modules 300 used at the cloud meeting platform 105. In this way the, the user terminal 102 is configured to convert the communication stream(s) of the recorded communication session to text. For any events determined from the transcription generated by the user terminal 102, these may be stored as event files (or as a result analysis file) in the local memory storage 204 similar to the event files 318 (or single result analysis file 320) that are stored at events store 314 at the cloud meeting platform 105. Therefore in embodiments the user terminal 102 only needs to access the video file (media file) 316 from the cloud meeting platform 105. It should be understood that the term “accessed” metadata as used throughout this disclosure encompasses all ways in which the metadata (i.e. event files or a single result analysis file) is obtained by the user terminal 102. Further, the user terminal 102 may be able to employ any one or a combination of the methods of accessing the metadata as described herein.
Alternatively or in addition to the cloud meeting platform 105 associating the metadata with the video file 316 (i.e. step 412 above), the cloud meeting platform 105 may be configured to send the metadata to the AV MCU 104a in real-time while the communication session is still ongoing. This may be referred to a live application of the cloud meeting platform 105. In this scenario, the metadata is thus incorporated into the communication session live, in real-time by the AV MCU 104a for all participants of the communication session. The visual representations of the events (displayed events) may therefore be shown live as they happen in a scrollable navigation area 612 of the media playing application 280 or web client 260 that is playing out the communication session. The scrollable navigation area 612 is described in more detail below. The visual representations may include a range of different types as described earlier such as portions of (translated) text output from the ASR 302, actions taken by users using other applications (e.g. photos taken, edits made to a slideshow presentation etc.) as well as representation of other audio and/or visual events.
The representations of events (displayed events) may also be shown in a “near real-time” playback of the communication session. For example, one or more users taking part in the live communication can select to pause the play out of the live communication session at their user terminal 102. For example, the user may pause the communication session in order to make or answer another call. While the communication session is paused for the local user at their user terminal 102, the communication session itself continues between the other participants and continues to be recorded as a video file 316 (as described above). Alternatively, or in addition, the communication session may be recorded in the background, to storage 204 of the user terminal 102. When the user is ready, they can select “resume” playback of the communication session. In response the user terminal 102 can access or download the video file 316 from cloud meeting platform 105 (or access the local recording of the communication session) from the point at which the communication session was paused. The user terminal 102 further accesses the metadata (as described above) that which means that visual representations of all events that have occurred in the communication session, including for events that have occurred since the communication session was paused may be displayed in the scrollable navigation area 612. Therefore, a user can catch up with the live session by effecting an inertia scrolling action in the navigation area 612 to scroll through the displayed events, which are synchronised with the relevant points in time of the recorded communication, to advance through the communication session until it catches up with the ongoing live session. This inertial scrolling concept is described in detail later. Alternatively, rather than using the inertia scrolling action, the user can select a button or some control to re-join the live, real-time communication session. Obviously the user cannot advance beyond the point in time of a communication session that still live. However, the user choose to “rewind” the session by scrolling backwards through displayed events that have already occurred earlier in the recorded session. For example this may be useful if the user thinks they may have missed something or wants to watch or listen to something in the session again. Of course, the user can once again select to return to the live, real-time communication session if it is still ongoing.
Therefore, although the main embodiments described herein refer to the recorded communication session, aspects of the present disclosure are also relevant to a live, ongoing communication sessions.
At step 414 when the communication session is complete, the cloud meeting platform 105 generates an email 500 that summaries in text, the contents of the communication session. The cloud meeting platform 105 may have knowledge of any users that were invited to be part of the communication but did not join it for whatever reason. In this case, the cloud meeting platform 105 may automatically send the email to these users who did not join in the communication session. Although we refer to email, the cloud meeting platform 105 may be able to send the text based summary by other communications means including instant messaging (IM) and/or SMS. Another possibility is that the cloud meeting platform 105 can send a push notification to one or more users, notifying them that the recorded communication is available for them to access. The push notification may be displayed for example in the user's communication client 222. The user can then decide when to retrieve the text based summary. Alternatively the user may ignore or discard the notification. For convenience we refer to the email summary The email summary may also be sent to any of the users who did join in the communication session in case they want a convenient way of accessing and re-playing back the recorded communication session. Further still, the email summary could be sent to any other contact(s) with the permission of the host or an administrator. For example if there is no sensitive content in a recorded communication session, it may be beneficial to widely distribute the email e.g. to a wider team of co-workers or to a general mailing list.
The summary email 500 may include further text links for example a list of titles of individual slides 504 in the slideshow presentation. As with the first text link 502, the titles of links 504 may be determined from the screen share/slide analysis engine 312 and read from the appropriate event file 318 (or the result analysis file). In the example shown there are three links 504 displayed with titles “Bananas”, “Oranges” and “Apples”. Other links may be shown as subheadings that represent events that were determined to have occurred during the presentation of a particular slide. For example one or more links in quotation marks 506 are based on what the NLP 306 deemed to be keyword or keyphrase spoken in the communication session. For example, under the “Bananas” link 504 there is displayed the link “eating twenty-seven bananas in one sitting could be dangerous for your health” while under the “Oranges” link 504 there is displayed the link “drinking 250 ml of orange juice a day is a very good source of vitamin C”. Other links may be included and highlighted for example when a visual event occurred 508, or for when an audio event occurred 510. For example the visual event link “[Video clip]” 508 and the audio event link “[applause]” are shown under the “Bananas” link 504. It should be understood there may be more or fewer links, depending on the content of the communication session.
Thus each link in the email summary 500 corresponds to an event that was detected in the by the communication data analysis modules 300. As described, each of the links is based on a detected event wherein each event was time stamped with a point in time during the communication session. Each link therefore links directly to the corresponding point in time of the video file 316. Therefore by tapping on any one of the displayed links at any time, the first user terminal 102 accesses the video file 316 and is linked to the corresponding moment in time in the recorded communication session. The recorded communication session may be played out in a media playing application 280 or the web client application 260 running on the user terminal 102. Other applications, e.g. one or more of applications 240 running on the user terminal 102, may also be configured and suitable for playing out the recorded communication session. For convenience we refer only to the web client 260 for playing out the recorded communication session hereinafter. By tapping or selecting a particular link the playback of the recorded communication session is caused to skip forward or backward immediately to the point in time that corresponds to the timestamp of the event that the selected link is based on. The same link can be re-selected by a user many times so that they can keep playing back the recorded communication session from a particular point of time that may be of particular interest.
When a user terminal 102 accesses or downloads the recorded video file 316 it also accesses the event files 318 (or single result analysis file 320) associated with that recorded communication session. For example, if the video file 316 is downloaded, the event files 318 (or single result analysis file 320) is also downloaded from the cloud meeting platform 105. If the video file 316 is streamed from the cloud meeting platform 105 then the data relating to the event files data may also be streamed. Alternatively, if the event files 318 have already been encoded as part of the single video itself 316 at step 412 (described above), there will be no need to separately access the event files 318.
The audio playback of a recorded communication session is synchronised with the video component. The audio is played out from the web client 260 without interrupting the playout of any audio streams of other applications running on the user terminal 102. Thus if the recorded communication session is an audio only recording, or if the user does not need to or cannot see the display 208 then he may simply listen to the audio output.
Skip control buttons 210 allow a user to advance or go back to the point in time of the playback when the next or previous slide was introduced in the communication session. The skip control buttons 210 may also be used to advance or go back to the point in time when the next or previous detected event occurred. In embodiments a user setting may allow the user to advance or go back to the point in time when the next or previous type of event occurred, e.g. the user may want to skip though the occurrence of audio events only. Because the web client 260 has access to the metadata i.e. the event files 318 (or single result analysis file 320) it knows what point in time of the playback to skip to when the skip buttons 610 are selected. Therefore while the playback of the recorded session is a video rather than an actual slideshow, the metadata allows a user to effectively skip through the video on a slide-by-slide basis. In embodiments a user may double-tap a skip control 210 to go back to the beginning or to the end of the recorded communication session.
As an alternative to using the playback control buttons 206, a user may be able to control the playback of the recorded communication session by interacting with the video displayed in the first area 602. For instance by tapping or clicking in area 602 the playback may be paused/resumed. Further by performing swiping actions on the video area in 602 (or by tapping or clicking on the left and right edges of the video in area 602) the playback will advance (e.g. swipe left/tap on right edge) or go back (e.g. swipe right/tap on left edge) to the point in time of the playback when the next or previous slide was introduced in the communication session. The ability to skip through the recorded communication session may be effected while the playback is being played out or while it has been paused. In embodiments if the user wants a larger view of the content displayed in area 602, he may rotate his user terminal 102 sideways to get a full screen view of the area 602. The skilled person would understand that such a determination of a sideways rotation may be made by the CPU 200 in conjunction with an accelerometer type device (not shown) of the user terminal 102.
If the recorded communication session includes only audio components, the user can still skip through to the next or previous events in the audio recording e.g. any events determined to have occurred from the NLP 306 and/or audio analysis engine 308. Although there is no recorded video component, the cloud meeting platform 105 may generate a visual element as part of the formatted video file 316. This visual element may be a static image that displays in area 602 (e.g. a sound wave symbol to indicate that an audio only communication session is being played back). Alternatively the visual element may comprise a series of images that visualise the progress of the playback of the recorded communication session. The images may also indicate the type of the most recent event that occurred in communication session by displaying a visual representation of that event. Therefore the user still sees some helpful visual cues in area 602 as to what occurred during the communication session.
As well as using the control buttons 606 displayed on the web client UI 600, the user terminal 102 may also include one or more physical controls, e.g. control buttons, which can also be used to control the playback of the recorded communication session in any of the ways as described herein. Alternatively or in addition, the physical controls may be part of another input device 210 connected to the user terminal 102 e.g. a keyboard, mouse or headphone/headset controls.
In embodiments the web client UI 600 further includes navigation area 612. The metadata (event files 318 or single analysis result file 320) is accessed by the user terminal 102 such that each event is visually represented by a portion of text data (as described above) which are displayable in the navigation area 612. The metadata may be loaded so that each portion of text that is displayed is synchronised with the playback of the recorded communication session. This is possible based on the timestamps included in each stored event file. As the recorded communication session is played back a highlight bar 660 automatically scrolls down the displayed portions of text in the navigation area 612 in synchronicity with those events they represent, as they occur in the playback of the recorded communication session. The highlight bar 660 therefore progresses downwards through the navigation area 612 as the recorded communication session is played back, highlighting each displayed portion of text in turn. Although the highlight bar 660 is described herein as progressing downwards, in other embodiments the highlight bar may sequentially move through the displayed portions of text in any direction.
In embodiments the number of separate portions of text displayed in the navigation area 612 is based on the relevance value that has been assigned to each portion of text and on a user-controllable zoom level function of the navigation area 612. When the portions of text are stored and assigned a relevance value as part of step 408 (described above), the relevance module 356 algorithm also works to associate each relevance value with a zoom level of the navigation area 612. For instance, portions of text that are deemed to have the highest relevance may be associated with the lowest zoom level of the navigation area 612. The lowest zoom level (i.e. the most zoomed out) may be considered as “an overview” zoom level. In an example embodiment a portion of text representing a change of slide in a slideshow presentation may be assigned the highest relevance. Therefore these portions of text are then associated with the overview zoom level. As a result when the zoom level of the navigation area 612 is controlled to be zoomed out to the overview zoom level, only those portions of text with a relevance value that has been associated with the overview zoom level will be displayed in the navigation area 612. The overview zoom level may be set as a default starting zoom level for the navigation area 612 when playback of a recorded communication session is initiated. Similarly, and as explained in more detail below, lower relevance values are respectively associated with more zoomed in levels of the navigation area 612. Therefore when the web client 260 zooms the navigation area 612 in to a zoom level that has been associated with a lower relevance value assigned to one or more portions of text, those portions of text (plus portions of text with a higher relevance value assigned) will be displayed in the navigation area 612. Thus when zoomed in or out the navigation area 612 is configured to display portions of text of differing levels of relevance so that the user can quickly and easily see an appropriate level of detail as required.
In an alternative embodiment, rather than the relevance value being assigned by the relevance module 356 algorithm at the cloud meeting platform 105, the relevance value may be determined by an algorithm which is run at the user terminal 102 (hereinafter “user terminal relevance algorithm”). When the metadata (event files 318 or single analysis result file 320) is accessed by the user terminal 102, the user terminal relevance algorithm can analyse and compare the individual portions of text representing each event and assign a relevance value to each one.
In embodiments, the assigned relevance value (assigned by either the relevance module 356 or the user terminal 102) may be based on actions exhibited by a number of users of the communication system 100. That is, it may be said that the assigned relevance value is “crowd sourced”. As one example, users participating in a communication session can submit live feedback in response to what they are watching and/or listening to. The feedback may be submitted by way of a “Like” button presented in a user interface of the user terminal 102. This feedback may be sent to the cloud meeting platform 105 optionally via the AV MCU 104a. The feedback may be collated from any number of users, e.g. from hundreds to potentially millions of users that watch a presentation. The feedback is then utilised by either the relevance module 356 or the individual user terminals 102 in assigning the relevance value. For a detected event that correlates with a peak in positive feedback (i.e. a large a number of received “Likes”), the relevance value assigned to the portion of text representing that event is increased relative to the value that it would otherwise have been assigned. Therefore the relevance of representations of events may be based on a level of popularity associated with that event as it occurred in the communication session.
Still further, the crowd sourcing technique may be based on how users interact with the play back of the recorded video file 316. That is, feedback as described above may be submitted from the user terminals 102 as users play back the video file i.e. rather than submitting feedback as part of the live communication session. Therefore, in this scenario, a relevance value that has already been assigned to the representation of an event may be increased or decreased (either by the relevance module 356 or the user terminal 102 as explained above). Thus the representation may become more relevant or less relevant over time based on the feedback from users. For instance, the feedback could be submitted by way of a “Like” button similar to the embodiment described above causing the representation of a popular event to have an increased relevance assigned. Other ways of receiving feedback include monitoring how the users (at large) navigate the recorded video file 316. For example, popular points in time of the playback may cause an increased relevance value to be assigned to the representation of events occurring at those points in time. As another example, a user can enter search terms to search the content of the event metadata for particular representations of events (as explained in more detail below). Search terms and/or selected search results can be sent as feedback to the cloud meeting platform 105. Thus popular search terms and/or search results among the users can be determined by the cloud meeting platform 105. Based on this crowd-sourced information, an increased relevance value may be assigned to the representation of events that relate to the popular search terms and/or search results.
Thus, by tracking feedback of the users' interactions with the downloaded video file 316, the relevance values assigned to the representations of the events may be regularly updated to reflect the overall behaviour of those users. In this way, user terminals 102 that subsequently access or download the video file 316 from cloud meeting platform 105 will also have access the most up-to-date metadata. User terminals 102 that have already accessed the video file 316 may be configured to download the updated metadata as a stream of side data from the cloud meeting platform 105.
The respective zoom levels associated with the assigned relevance values may also be determined by the user terminal relevance algorithm at the user terminal 102, rather than by the relevance module 356 algorithm at the cloud meeting platform 105. In this case, the user terminal relevance algorithm can further take into consideration the display size area available for navigation area 612. For example, the zoom levels associated with the assigned relevance values may be pre-computed in advance of a user controlling the zoom level of the navigation area 612. Alternatively, the assigned relevance values may be associated with a zoom level each time a user controls the zoom function by zooming in or zooming out of the navigation area 612.
Although potentially more processor intensive, it may be beneficial to associate the relevance of portions of text with a zoom level as a user controls the zoom function because the size of the available area of navigation area 612 can then be taken into account. For instance if the navigation area 612 is determined by the web client 260 to be sufficiently large, then more portions of text can be displayed without crowding the navigation area 612. For example more portions of text, possibly including portions of text with a lesser degree of relevance than portions of text that are already displayed in the navigation area 612, can also be displayed. By contrast, if the navigation area 612 is small, then the user terminal relevance algorithm may be configured to give priority to the portions of text assigned with the highest degree of relevance as the navigation area 612 is zoomed out. This helps to ensure that the navigation area 612 is not overcrowded with displayed portions of text. In still further embodiments, the zoom level of the navigation area 612 may be dynamically adapted by the web client 260 based on the size of the navigation area 612 alone i.e. without the user controlling the zoom function. This may be useful if the navigation area 612 is resized during playback of the recorded communication session.
A user may control the zoom level of the navigation area 612 by way of the zoom control buttons 672 and 674 displayed in the web client user interface 600. By tapping or otherwise selecting button 672 (zoom in, “+”), the navigation area 612 is zoomed in causing the web client 260 to populate the navigation area 612 with more displayed portions of text which have been assigned a lower relevance value. By contrast, tapping or otherwise selecting button 674 (zoom out, “−”), the navigation area 612 is zoomed out causing the web client 260 to reduce the volume of displayed portions of text in the navigation area 612 such that only portions of text which have been assigned a higher relevance value are displayed. If the zoom level is fully zoomed in or fully zoomed out, the appropriate control button 672 or 674 may be “greyed out” to indicate the user cannot control the zoom in that direction any further.
Although the onscreen zoom controls are shown as buttons 672, 674, the zoom may be controlled by other means such as a virtual slider control. When the user zooms through the different zoom levels a label beside the zoom control may be temporarily displayed to indicate the zoom level e.g. “overview zoom level”, “maximum zoom level” and the like. Depending on how many different zoom levels there are for displaying the portions of text (i.e. based on the number of different assigned relevance values), the different zoom levels may be graded accordingly e.g. if there are four discrete zoom levels for displaying the portions of text in the navigation area 612, the zoom control may display the zoom level as one of “1/4”, “2/4”, “3/4”, and “4/4”.
Control of the zoom function may be implemented so that each time a user taps or selects the zoom in or zoom out controls, the web client 260 is configured to cause the zoom level of the navigation area 612 to be zoomed to the next zoom level that has been associated with a relevance value. The web client 260 then displays the portions of text that have been assigned with the appropriate relevance value(s) in the navigation area 612.
The zoom levels respectively associated with the assigned relevance values may be implemented by using floating point zoom values such that the user can dynamically zoom in and out of the navigation area 612 without the zoom levels ‘snapping’ or ‘locking’ to predefined discrete zoom levels. When a user controls the zoom function of the navigation area 612 such that it reaches a floating point value that has been associated with a relevance value assigned to one or more portions of text, those portions of text (plus portions of text with a higher relevance value assigned) will be displayed in the navigation area 612. This may provide for a more fluid and natural user experience.
The control buttons may also be used to effect a change in the zoom level of the navigation area 612, for example by way of discrete control buttons and/or a wheel control. Other ways of zooming in or out of the navigation area 612 may be known to those skilled in the art and may include, but are not be limited to, touch screen controls such as making pinch and expand gestures.
In
In
As the navigation area 612 is zoomed in, the playback of the recorded communication session continues uninterrupted and the highlight bar 660 will be displayed over the current or most recent portion of text in the navigation area 612 that corresponds with the current point in time in the playback. The highlighted portion of text may be of the newly displayed, lesser relevant portions of text that has just populated the navigation area 612 following a zooming in action. Optionally, each displayed portion of text may also be displayed with a time marker 624 which indicates the point in time in the recorded communication session at which the event it represents was detected. For example in
In embodiments, a user may be able to select the range of relevance values that get assigned to the portions of text. For example if there is a great number of events a user may select a user setting to use a wider range of relevance values. According to the range of relevance values available, the relevance module 356 (or the user terminal 102) must then assign the portions of text with one of the available relevance values, determining which of the portions of text are more relevant than other portions of text. For example, a keyphrase may be determined to be more relevant than an audio event. By using a greater number of different relevance values, there is a correspondingly greater number of zoom levels that become associated with those relevance values. Therefore a user is provided with a finer granularity for changing how the portions of text of varying degrees of relevance are displayed as the web client 260 zooms in and out of the navigation area 612. Conversely, the user may reduce the range of available relevance values such that there are fewer ways of displaying portions of text of varying degrees of relevance as the web client 260 zooms in and out of the navigation area 612.
The navigation area 612 becomes scrollable if there are more portions of text than can be displayed within it for the entire recorded communication session. A scrolling marker 605 allows the user to scroll through the displayed portions of text either while playback continues or while the playback has been paused. When the highlight bar 660 has moved down during playback such that it has reached the bottom of the displayed navigation area 61, the web client 260 refreshes the navigation area 612 so that the next series of portions of text from the communication session are then displayed from the top of navigation area 612. The highlight bar 660 also moves to the top of the refreshed navigation area 612 to highlight the current portion of text and continues to move downwards towards the bottom. When the navigation area 612 has been refreshed, the scrolling marker 605 is displayed further down the navigation area to indicate the overall progression of the playback and that there are one or more preceding portions of text that have been “scrolled off of the top” of the navigation area 612. At any time, the user may scroll back up the navigation area 612 to see the preceding portions of text form earlier in the recorded communication session or may also scroll down the navigation area 612 to see upcoming portions of text.
In
In embodiments when a user controls the zoom function of the navigation area 612, he may not want to alter the position of the playback of the recorded communication session. Therefore in one embodiment the zooming of the navigation area 612 is controlled so that it is centred on the current playback position as the user zooms in or out. That is the zooming will centre on wherever the highlight bar 660 is being displayed for that zoom level. The playback of the media file 316 is unaffected and continues uninterrupted by any changes to the zoom level. The user may also zoom in and out of the displayed portions of text while the playback is paused.
In an alternative embodiment the user may want to use the zoom function to actively alter the position of the playback of the recorded communication session. For example, if the user selects to zoom in or out of a particular area within the navigation area 612, then the web client 260 controls playback of the recorded communication session so that it jumps to the nearest portion of text to which the user has zoomed in to (or zoomed out to) and continues to play from that point i.e. the playback will remain synchronised to whichever portion of text the user zooms in or out to. The highlight bar 660 will also be displayed to highlight the appropriate portion of text (or part of the full transcription) and continue to move downwards through the displayed portions of text as the playback continues.
All of the displayed portions of text in the navigation area 612 are also selectable by a user. If selected by the user, the playback jumps to the point in time of the recorded communication session based on the timestamp of the event that the portion of text is representing. If the navigation area 612 has been zoomed in to view the full transcript of the audio component, then each sentence may be selected so that the playback jumps to that point in time of the recorded communication session. The navigation area 612 is dynamically updated to show the highlight bar 660 highlighting the selected portion of text (or part of the full transcription when fully zoomed in). The highlight bar 660 then continues to scroll down through the displayed portions of text (or transcription) from this point on, as described above. Therefore the portions of text as displayed in the navigation area 612 have a very similar purpose to the selectable links (502, 504, 506, 508, 510) displayed in the email summary 500. Selecting one of the links in email summary 500 or selecting a corresponding portion of text in the navigation area 612 has the same effect in the web client UI 600.
Referring to
Searches can be made for content of the metadata (e.g. the content of the text output from the ASR 302, or text determined from OCR analysis). Further, searches may be made for types of events that occur during a communication session, including but not limited to audio events, visual events, when a particular user speaks, and/or when a particular user joined or left the communication session.
The web client 260 can analyse the metadata across all zoom levels for searched terms. For example, even though a full transcription of the recorded audio data stream is usually only displayed when the navigation area 612 is fully zoomed in, a match may nevertheless be found when the navigation area 612 is further zoomed out.
Search results may be displayed in an autocomplete manner e.g. where a list of closest matches is displayed and updated underneath the search box as the user enters each typed character. Each result may be indicated by a graphic 682, for example to indicate the type of event that has been found e.g. a change of slide event, an audio event, a visual event etc. Results found in keywords, keyphrases or part of the full transcription derived by the ASR 302 may be displayed with quotation marks (“ ”) to indicate that the result is part of the transcription. The results may also be provided with context i.e. if a searched word is found in the transcription, a short excerpt may be displayed for a result with the searched word shown in bold or highlighted in some way. Therefore the user can more easily understand the context of how the searched term has been used in the communication session. The results list may be sorted according to their assigned relevance level or in chronological order. In embodiments a time marker 684 may be shown next to a result indicating at which point in the recorded communication session the event occurs.
The user may select one of the suggested search results and in response the web client 260 causes the playback position (or paused position) of the recorded communication session to jump straight to the corresponding point in time of the playback. Further, by selecting a result, the navigation area 612 is updated to display the highlight bar so that the corresponding portion of text is shown highlighted. In an alternative embodiment, selection of a search result does not alter or interrupt the current playback position but may update the navigation area 612 to show the corresponding portion of text in a prominent position e.g. at the top of the or in the middle of the navigation area 612.
If the selected result is associated with a portion of text that has an assigned relevance value such that it is already displayable in the zoom level at which the navigation 612 is currently at, then no change in the zoom level is effected by the web client 260. Alternatively, the selected result may be associated with a portion of text that has an assigned relevance value that is lower than that for portions of text that are being displayed at the current zoom level of the navigation area 612. In this case, the web client 260 controls the zoom level so that it is zoomed in to the zoom level associated with the lower relevance value so that the portion of text associated with the selected result is displayed highlighted by the highlight bar 660 in the navigation area 612.
In embodiments, the events may be determined based on an analysis of the communication streams of the communication session, and each of a plurality of said portions may comprise one of: a full text transcript of audio speech signals; one or more paragraphs of text extracted from said full transcript; one or more sentences of text extracted from said full transcript; one or more keywords or keyphrases extracted from said full transcript using natural language processing techniques.
In embodiments, the displaying of portions of text may include displaying the full text transcript when the relevance value assigned to the full text transcript is associated with a fully zoomed in zoom level of the user interface and the user interface is fully zoomed in; and the displaying of portions of text may further includes displaying a respective one or more of the keywords or keyphrases, excluding displaying other words from the full text transcript, when the relevance value assigned to the respective one or more of the keywords or keyphrases is associated with a non-fully zoomed in zoom level of the user interface and the user interface is zoomed to said non-fully zoomed level.
In embodiments, the portions may further include: text representing an event determined from an analysis of properties of an audio stream of the communication session; text representing an event determined from an analysis of properties of a video stream of the communication session; and/or text representing an event determined from an analysis of screen sharing data, optionally comprising Optical Character Recognition techniques.
In embodiments, the unique relevance value that indicates a highest relevance may be associated with a maximum zoomed out zoom level of the user interface.
In embodiments, assigning each of the portions with a relevance value and associating each unique relevance value with a respective zoom level may be performed using an algorithm running on the user terminal.
In embodiments, associating each unique relevance value with a respective zoom level may be pre-computed in advance of changing the zoom level of the user interface.
In embodiments, associating each unique relevance value with a respective zoom level may be performed as the zoom level of the user interface is changed, and may be based on the number of separate portions assigned with each unique relevance value, and further based on an available display area of the user interface for displaying said portions of text.
The method may comprise changing the zoom level of the user interface based on a user control input received by the user terminal, said user control received via one or more of: on screen zoom in and zoom out buttons; a virtual on screen zoom slider; pinch and expand touchscreen gestures; and/or physical controller buttons of the user terminal and/or a device connected to said user terminal.
In embodiments, the respective zoom level that is associated one of said unique relevance values may be a floating point zoom value.
In embodiments, in response to the zoom level of the user interface being zoomed in, the displaying of the portions of text may comprise displaying portions of text assigned with a relevance value that represents a relevance that is greater than or equal to the relevance represented by the unique relevance value that is associated with said zoomed in zoom level.
The method may comprise the application playing back the media file and, based on the temporal metadata, highlighting the displayed portions of text, one at a time in chronological order, and synchronised with the playback of the media file as said events that correspond with the portions of text occur in the playback of the media file.
The method may comprise the application changing the zoom level wherein said changing of the zoom level is centred on a currently highlighted portion of text displayed in the user interface, and wherein the playing back of the media file continues unchanged.
The method may comprise the application changing the zoom level wherein said changing of the zoom level is centred on a user-selected area of the user interface; wherein said highlighting is moved to highlight the portion of text that is displayed closest to the centred zoom in the user interface with the changed zoom level; and wherein the play back of the media file is synchronised to play back from the event in the media file that corresponds with said portion of text that is displayed closest to the centred zoom.
The method may comprise receiving, by the user terminal, one or more user input search terms, said search terms causing the application to search content of the accessed metadata that matches the one or more input search terms.
The method may comprise the application returning one or more results that match the one or more input search terms, wherein a respective one of the portions of text is mapped to each respective result; displaying the one or more results in the user interface; receiving, by the user terminal, a user input for selecting one of said results; and in response to said selection, prominently displaying the portions of text that is mapped to the selected result in the user interface.
In embodiments, if the portion of text that is mapped to the selected result has been assigned with a relevance value that is of lower relevance than a relevance value associated with a current zoom level of the user interface, the zoom level is changed by zooming in to a zoom level that is associated with the relevance value that is of lower relevance so that the portion of text mapped to the selected result is displayed in the user interface.
The user terminal of the second aspect of the present disclosure may be configured in accordance with any of the above-described methods.
The client application of the third aspect of the present disclosure may be configured to perform any of the above-described methods.
Generally, any of the functions described herein can be implemented using software, firmware, hardware (e.g., fixed logic circuitry), or a combination of these implementations. The terms “module,” “functionality,” “component” and “logic” as used herein generally represent software, firmware, hardware, or a combination thereof. In the case of a software implementation, the module, functionality, or logic represents program code that performs specified tasks when executed on a processor (e.g. CPU or CPUs). The program code can be stored in one or more computer readable memory devices. The features of the techniques described below are platform-independent, meaning that the techniques may be implemented on a variety of commercial computing platforms having a variety of processors.
For example, the user terminals 102 and/or cloud meeting platform 105 may also include an entity (e.g. software) that causes hardware of those devices to perform operations, e.g., processors, functional blocks, and so on. For example, the user terminals 102 and/or cloud meeting platform 105 may include a computer-readable medium that may be configured to maintain instructions that cause those devices, and more particularly the operating system and associated hardware of those devices to perform operations. Thus, the instructions function to configure the operating system and associated hardware to perform the operations and in this way result in transformation of the operating system and associated hardware to perform functions. The instructions may be provided by the computer-readable medium to the user terminals 102 (or cloud meeting platform 105) through a variety of different configurations.
One such configuration of a computer-readable medium is signal bearing medium and thus is configured to transmit the instructions (e.g. as a carrier wave) to the computing device, such as via a network. The computer-readable medium may also be configured as a computer-readable storage medium and thus is not a signal bearing medium. Examples of a computer-readable storage medium include a random-access memory (RAM), read-only memory (ROM), an optical disc, flash memory, hard disk memory, and other memory devices that may us magnetic, optical, and other techniques to store instructions and other data.
Although the subject matter has been described in language specific to structural features and/or methodological acts, it is to be understood that the subject matter defined in the appended claims is not necessarily limited to the specific features or acts described above. Rather, the specific features and acts described above are disclosed as example forms of implementing the claims.
Number | Date | Country | Kind |
---|---|---|---|
1516552.5 | Sep 2015 | GB | national |