From d916b23e02a71dc1ad3be65704a86568f72b20be Mon Sep 17 00:00:00 2001 From: Pranav Joshi Date: Wed, 29 Apr 2026 15:54:03 +0000 Subject: [PATCH 1/4] multi modal experience --- __tests__/html2/speechToSpeech/barge.in.html | 3 +- .../basic.sendbox.with.mic.html | 59 +++++- .../basic.sendbox.with.mic.html.snap-1.png | Bin 4126 -> 5544 bytes .../html2/speechToSpeech/csp.recording.html | 7 +- .../html2/speechToSpeech/dtmf.input.html | 3 +- .../speechToSpeech/dtmf.input.html.snap-1.png | Bin 25741 -> 25676 bytes .../speechToSpeech/dtmf.input.html.snap-2.png | Bin 24351 -> 24980 bytes .../html2/speechToSpeech/happy.path.html | 17 +- .../speechToSpeech/happy.path.html.snap-1.png | Bin 9172 -> 10057 bytes .../speechToSpeech/happy.path.html.snap-2.png | Bin 13726 -> 14757 bytes .../multimodal.text.with.voice.html | 197 ++++++++++++++++++ ...multimodal.text.with.voice.html.snap-1.png | Bin 0 -> 25683 bytes .../html2/speechToSpeech/multiple.turns.html | 3 +- .../multiple.turns.html.snap-1.png | Bin 26857 -> 27461 bytes .../html2/speechToSpeech/mute.unmute.html | 1 + .../outgoing.audio.interval.html | 3 +- packages/api/src/StyleOptions.ts | 25 +++ .../api/src/assets/voiceProcessingSound.ts | 7 + packages/api/src/defaultStyleOptions.ts | 8 +- .../ActivityTyping/ActivityTypingComposer.tsx | 9 +- .../Capabilities/types/Capabilities.ts | 1 + .../SpeechToSpeech/SpeechToSpeechComposer.tsx | 3 + .../private/VoiceProcessingSoundBridge.tsx | 62 ++++++ packages/bundle/src/createDirectLine.ts | 3 + packages/core/src/sagas/postActivitySaga.ts | 138 +++++++----- .../src/sagas/queueIncomingActivitySaga.ts | 37 +++- .../types/internal/WebChatOutgoingActivity.ts | 1 + .../VoiceTranscriptActivityStatus.module.css | 12 +- .../VoiceTranscriptActivityStatus.tsx | 23 +- .../src/components/icon/FluentIcon.module.css | 6 +- .../sendBox/MicrophoneToolbarButton.tsx | 11 +- .../src/components/sendBox/SendBox.tsx | 38 ++-- .../testHelpers/createDirectLineEmulator.js | 10 +- 33 files changed, 562 insertions(+), 125 deletions(-) create mode 100644 __tests__/html2/speechToSpeech/multimodal.text.with.voice.html create mode 100644 __tests__/html2/speechToSpeech/multimodal.text.with.voice.html.snap-1.png create mode 100644 packages/api/src/assets/voiceProcessingSound.ts create mode 100644 packages/api/src/providers/SpeechToSpeech/private/VoiceProcessingSoundBridge.tsx diff --git a/__tests__/html2/speechToSpeech/barge.in.html b/__tests__/html2/speechToSpeech/barge.in.html index d12f20c51f..a0d4290581 100644 --- a/__tests__/html2/speechToSpeech/barge.in.html +++ b/__tests__/html2/speechToSpeech/barge.in.html @@ -40,8 +40,9 @@ const { directLine, store } = testHelpers.createDirectLineEmulator(); - // Set voice configuration capability to enable microphone button + // Multi-modal experience: server announces audio, consumer opted into voice mode. directLine.setCapability('getVoiceConfiguration', { sampleRate: 24000, chunkIntervalMs: 100 }, { emitEvent: false }); + directLine.setCapability('getIsVoiceModeEnabled', true, { emitEvent: false }); render( diff --git a/__tests__/html2/speechToSpeech/basic.sendbox.with.mic.html b/__tests__/html2/speechToSpeech/basic.sendbox.with.mic.html index 56b2608a7f..88eb66d153 100644 --- a/__tests__/html2/speechToSpeech/basic.sendbox.with.mic.html +++ b/__tests__/html2/speechToSpeech/basic.sendbox.with.mic.html @@ -12,6 +12,13 @@
+ + + + + + + + + +
+ + + + + diff --git a/__tests__/html2/speechToSpeech/multimodal.text.with.voice.html.snap-1.png b/__tests__/html2/speechToSpeech/multimodal.text.with.voice.html.snap-1.png new file mode 100644 index 0000000000000000000000000000000000000000..ecca75dcc46a87d22700bb07de4ff612cf1aa56a GIT binary patch literal 25683 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 F{{xjm{b2wA literal 0 HcmV?d00001 diff --git a/__tests__/html2/speechToSpeech/multiple.turns.html b/__tests__/html2/speechToSpeech/multiple.turns.html index 7a5ccc5971..3f3ed16bef 100644 --- a/__tests__/html2/speechToSpeech/multiple.turns.html +++ b/__tests__/html2/speechToSpeech/multiple.turns.html @@ -39,8 +39,9 @@ const { directLine, store } = testHelpers.createDirectLineEmulator(); - // Set voice configuration capability to enable microphone button + // Multi-modal experience: server announces audio, consumer opted into voice mode. directLine.setCapability('getVoiceConfiguration', { sampleRate: 24000, chunkIntervalMs: 100 }, { emitEvent: false }); + directLine.setCapability('getIsVoiceModeEnabled', true, { emitEvent: false }); render( diff --git a/__tests__/html2/speechToSpeech/multiple.turns.html.snap-1.png b/__tests__/html2/speechToSpeech/multiple.turns.html.snap-1.png index 65531ebe9c5278daea764f0d885944eb2d951ee2..22bd88dd585837ed620ef7cd6579e8030961dcbf 100644 GIT binary patch literal 27461 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 { diff --git a/__tests__/html2/speechToSpeech/outgoing.audio.interval.html b/__tests__/html2/speechToSpeech/outgoing.audio.interval.html index d2167aba2a..b5ee6f223a 100644 --- a/__tests__/html2/speechToSpeech/outgoing.audio.interval.html +++ b/__tests__/html2/speechToSpeech/outgoing.audio.interval.html @@ -41,8 +41,9 @@ const { directLine, store } = testHelpers.createDirectLineEmulator(); - // Set voice configuration capability to enable microphone button + // Multi-modal experience: server announces audio, consumer opted into voice mode. directLine.setCapability('getVoiceConfiguration', { sampleRate: 24000, chunkIntervalMs: 100 }, { emitEvent: false }); + directLine.setCapability('getIsVoiceModeEnabled', true, { emitEvent: false }); // Intercept postActivity to capture outgoing voice chunks const capturedChunks = []; diff --git a/packages/api/src/StyleOptions.ts b/packages/api/src/StyleOptions.ts index 2664030055..85c3c3b168 100644 --- a/packages/api/src/StyleOptions.ts +++ b/packages/api/src/StyleOptions.ts @@ -1021,6 +1021,31 @@ type StyleOptions = { * @default 'auto' */ showMicrophoneButton?: 'auto' | 'hide'; + + /** + * Sound played while voice state is in `'processing'` state. + * + * - `string` โ€” a URL, data URI, or blob URL of the audio to play. + * - `false` โ€” disables the sound cue entirely. + * + * @default A bundled default sound (data URI) + */ + voiceProcessingSound?: string | false; + + /** + * Whether the voice processing sound should loop while in `'processing'` state. + * + * @default true + */ + voiceProcessingSoundLoop?: boolean; + + /** + * Volume of the voice processing sound. A number between `0` (muted) and `1` (full). + * Lets consumers tune loudness so the cue stays audible without overpowering the bot's spoken response or the user's environment. + * + * @default 0.5 + */ + voiceProcessingSoundVolume?: number; }; // StrictStyleOptions is only used internally in Web Chat and for simplifying our code: diff --git a/packages/api/src/assets/voiceProcessingSound.ts b/packages/api/src/assets/voiceProcessingSound.ts new file mode 100644 index 0000000000..4135aa0dfb --- /dev/null +++ b/packages/api/src/assets/voiceProcessingSound.ts @@ -0,0 +1,7 @@ +// Default voice processing sound (played while voice state is 'processing'). +// Override via styleOptions.voiceProcessingSound. +// TODO: Use blob URL instead of data URI and remove this workaround. +const VOICE_PROCESSING_SOUND_DATA_URI = + 'data:audio/mpeg;base64,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'; + +export default VOICE_PROCESSING_SOUND_DATA_URI; diff --git a/packages/api/src/defaultStyleOptions.ts b/packages/api/src/defaultStyleOptions.ts index e9ea89c7f9..00df1cc6db 100644 --- a/packages/api/src/defaultStyleOptions.ts +++ b/packages/api/src/defaultStyleOptions.ts @@ -1,5 +1,6 @@ /* eslint no-magic-numbers: "off" */ import StyleOptions from './StyleOptions'; +import VOICE_PROCESSING_SOUND_DATA_URI from './assets/voiceProcessingSound'; function fontFamily(fonts) { return fonts.map(font => `'${font}'`).join(', '); @@ -323,7 +324,12 @@ const DEFAULT_OPTIONS: Required = { sendBoxAttachmentBarMaxThumbnail: 3, // Speech-to-speech options - showMicrophoneButton: 'auto' + showMicrophoneButton: 'auto', + + // Voice processing sound (played during voice state is 'processing') + voiceProcessingSound: VOICE_PROCESSING_SOUND_DATA_URI, + voiceProcessingSoundLoop: true, + voiceProcessingSoundVolume: 0.5 }; export default DEFAULT_OPTIONS; diff --git a/packages/api/src/providers/ActivityTyping/ActivityTypingComposer.tsx b/packages/api/src/providers/ActivityTyping/ActivityTypingComposer.tsx index 6dda9f0e2d..9768dd3c30 100644 --- a/packages/api/src/providers/ActivityTyping/ActivityTypingComposer.tsx +++ b/packages/api/src/providers/ActivityTyping/ActivityTypingComposer.tsx @@ -1,4 +1,8 @@ -import { getActivityLivestreamingMetadata, type WebChatActivity } from 'botframework-webchat-core'; +import { + getActivityLivestreamingMetadata, + isVoiceTranscriptActivity, + type WebChatActivity +} from 'botframework-webchat-core'; import { queryReceivedAtFromActivity } from 'botframework-webchat-core/activity'; import { iteratorFind } from 'iter-fest'; import React, { memo, useCallback, useMemo, type ReactNode } from 'react'; @@ -92,6 +96,9 @@ const ActivityTypingComposer = ({ children }: Props) => { firstReceivedAt: mutableEntry.typingIndicator?.firstReceivedAt ?? receivedAt, lastReceivedAt: receivedAt }); + } else if (isVoiceTranscriptActivity(activity)) { + // Voice transcript (media.end with transcription) clears typing indicator. + mutableEntry.typingIndicator = undefined; } typingState.set(id, Object.freeze(mutableEntry)); diff --git a/packages/api/src/providers/Capabilities/types/Capabilities.ts b/packages/api/src/providers/Capabilities/types/Capabilities.ts index c72d96bd12..df58bad30f 100644 --- a/packages/api/src/providers/Capabilities/types/Capabilities.ts +++ b/packages/api/src/providers/Capabilities/types/Capabilities.ts @@ -2,6 +2,7 @@ * All capabilities are optional as they depend on adapter/server support. */ type Capabilities = Readonly<{ + isVoiceModeEnabled?: boolean | undefined; voiceConfiguration?: VoiceConfiguration | undefined; }>; diff --git a/packages/api/src/providers/SpeechToSpeech/SpeechToSpeechComposer.tsx b/packages/api/src/providers/SpeechToSpeech/SpeechToSpeechComposer.tsx index da6ee79b7e..9971b3de9e 100644 --- a/packages/api/src/providers/SpeechToSpeech/SpeechToSpeechComposer.tsx +++ b/packages/api/src/providers/SpeechToSpeech/SpeechToSpeechComposer.tsx @@ -1,4 +1,5 @@ import React, { type ReactNode } from 'react'; +import { VoiceProcessingSoundBridge } from './private/VoiceProcessingSoundBridge'; import { VoiceHandlerBridge } from './private/VoiceHandlerBridge'; import { VoiceRecorderBridge } from './private/VoiceRecorderBridge'; @@ -8,6 +9,7 @@ import { VoiceRecorderBridge } from './private/VoiceRecorderBridge'; * This component renders invisible bridge components that: * 1. VoiceHandlerBridge - registers audio player functions with Redux * 2. VoiceRecorderBridge - reacts to recording state and manages microphone + * 3. VoiceProcessingSoundBridge - plays processing audio cue while voiceState is 'processing' * * Use the `useVoiceState`, `useStartVoice`, and `useStopVoice` hooks to access state and controls. */ @@ -15,6 +17,7 @@ export const SpeechToSpeechComposer: React.FC<{ readonly children: ReactNode }> + {children} ); diff --git a/packages/api/src/providers/SpeechToSpeech/private/VoiceProcessingSoundBridge.tsx b/packages/api/src/providers/SpeechToSpeech/private/VoiceProcessingSoundBridge.tsx new file mode 100644 index 0000000000..2fe131f582 --- /dev/null +++ b/packages/api/src/providers/SpeechToSpeech/private/VoiceProcessingSoundBridge.tsx @@ -0,0 +1,62 @@ +import { useEffect, useMemo } from 'react'; + +import useStyleOptions from '../../../hooks/useStyleOptions'; +import useVoiceState from '../../../hooks/useVoiceState'; + +const DEFAULT_VOLUME = 0.5; +const MIN_VOLUME = 0; +const MAX_VOLUME = 1; + +// Constrain `value` to `[min, max]`. e.g. clamp(2, 0, 1) โ†’ 1; clamp(-0.3, 0, 1) โ†’ 0; clamp(0.4, 0, 1) โ†’ 0.4. +const clamp = (value: number, min: number, max: number) => Math.min(max, Math.max(min, value)); + +const ignoreError = () => { + // Ignore autoplay-policy rejection. +}; + +/** + * Plays the audio from the start; returns a stop function that pauses and rewinds. + */ +const play = (audio: HTMLAudioElement) => { + audio.currentTime = 0; + audio.play().catch(ignoreError); + + return () => { + audio.pause(); + audio.currentTime = 0; + }; +}; + +/** + * Plays a (looping) audio cue while voice mode is `'processing'`. + * + * Style options: + * - `voiceProcessingSound` โ€” URL/data-URI; `false` disables. + * - `voiceProcessingSoundLoop` โ€” defaults to `true`. + * - `voiceProcessingSoundVolume` โ€” `0`โ€“`1`, defaults to `0.5`. + */ +export const VoiceProcessingSoundBridge = () => { + const [{ voiceProcessingSound, voiceProcessingSoundLoop, voiceProcessingSoundVolume }] = useStyleOptions(); + const [voiceState] = useVoiceState(); + + const audio = useMemo(() => { + if (!voiceProcessingSound) { + return undefined; + } + + const instance = new Audio(voiceProcessingSound); + + instance.loop = voiceProcessingSoundLoop ?? true; + instance.volume = clamp(voiceProcessingSoundVolume ?? DEFAULT_VOLUME, MIN_VOLUME, MAX_VOLUME); + + return instance; + }, [voiceProcessingSound, voiceProcessingSoundLoop, voiceProcessingSoundVolume]); + + useEffect(() => { + if (audio && voiceState === 'processing') { + return play(audio); + } + }, [audio, voiceState]); + + return null; +}; diff --git a/packages/bundle/src/createDirectLine.ts b/packages/bundle/src/createDirectLine.ts index 98817a5c28..8a2b8c5a05 100644 --- a/packages/bundle/src/createDirectLine.ts +++ b/packages/bundle/src/createDirectLine.ts @@ -5,6 +5,7 @@ type CreateDirectLineOptions = { conversationId?: string; conversationStartProperties?: any; domain?: string; + enableVoiceMode?: boolean; fetch?: typeof window.fetch; pollingInterval?: number; secret?: string; @@ -20,6 +21,7 @@ export default function createDirectLine({ conversationId, conversationStartProperties, domain, + enableVoiceMode, fetch, pollingInterval, secret, @@ -35,6 +37,7 @@ export default function createDirectLine({ conversationId, conversationStartProperties, domain, + enableVoiceMode, fetch, pollingInterval, secret, diff --git a/packages/core/src/sagas/postActivitySaga.ts b/packages/core/src/sagas/postActivitySaga.ts index 6b021ceef6..39113fff76 100644 --- a/packages/core/src/sagas/postActivitySaga.ts +++ b/packages/core/src/sagas/postActivitySaga.ts @@ -36,13 +36,31 @@ import type { WebChatActivity } from '../types/WebChatActivity'; // This value must be equals to or larger than the user-defined `styleOptions.sendTimeout`. const HARD_SEND_TIMEOUT = 300000; +/** + * Checks if the DirectLine adapter supports voice (WebSocket-only mode). + * When voice is enabled, we use optimistic updates without waiting for echo back. + */ +function isVoiceEnabled(directLine: DirectLineJSBotConnection): boolean { + if (typeof directLine.getIsVoiceModeEnabled === 'function') { + try { + const isVoiceEnabled = directLine.getIsVoiceModeEnabled(); + return Boolean(isVoiceEnabled); + } catch { + return false; + } + } + + return false; +} + function* postActivity( directLine: DirectLineJSBotConnection, userID: string, username: string, numActivitiesPosted: number, { meta: { method }, payload: { activity } }: PostActivityAction, - ponyfill: GlobalScopePonyfill + ponyfill: GlobalScopePonyfill, + waitForEchoBack: boolean ) { const attachments = (activity.type === 'message' && activity.attachments) || []; const clientActivityID = uniqueID(); @@ -55,6 +73,8 @@ function* postActivity( // In the future, we should warn if the outgoing activity is not matching the type. let outgoingActivity: WebChatOutgoingActivity = { ...deleteKey(activity, 'id'), + // this is to show timestamp below user transcript. + ...(!waitForEchoBack ? { timestamp: now.toISOString() } : {}), channelData: { // `channelData.state` is being deprecated in favor of `channelData['webchat:send-status']`. // Please refer to #4362 for details. Remove on or after 2024-07-31. @@ -122,57 +142,72 @@ function* postActivity( let echoed: boolean | undefined; try { - // Quirks: We might receive INCOMING_ACTIVITY before the postActivity call completed - // So, we setup expectation first, then postActivity afterward - - const echoBackCall = call(function* () { - for (;;) { - const { - payload: { activity } - }: IncomingActivityAction = yield take(INCOMING_ACTIVITY); - if (activity.channelData?.clientActivityID === clientActivityID && activity.id) { - echoed = true; - - return activity; + if (waitForEchoBack) { + // Quirks: We might receive INCOMING_ACTIVITY before the postActivity call completed + // So, we setup expectation first, then postActivity afterward + + const echoBackCall = call(function* () { + for (;;) { + const { + payload: { activity } + }: IncomingActivityAction = yield take(INCOMING_ACTIVITY); + if (activity.channelData?.clientActivityID === clientActivityID && activity.id) { + echoed = true; + + return activity; + } } - } - }); + }); + + // Timeout could be due to either: + // - Post activity call may take too long time to complete + // - Direct Line service only respond on HTTP after bot respond to Direct Line + // - Activity may take too long time to echo back + + const sendTimeout: number = yield select(sendTimeoutSelector); + + const { + send: { echoBack } + }: { send: { echoBack: WebChatActivity } } = yield race({ + send: all({ + echoBack: echoBackCall, + postActivity: observeOnce(directLine.postActivity(outgoingActivity as DirectLineActivity)) + }), + timeout: call(function* () { + yield call(sleep, sendTimeout, ponyfill); + + // The IMPEDED action is for backward compatibility by changing `channelData.state` to "send failed". + // `channelData.state` is being deprecated in favor of `channelData['webchat:send-status']`. + // Please refer to #4362 for details. Remove on or after 2024-07-31. + yield put({ + type: POST_ACTIVITY_IMPEDED, + meta, + payload: { activity: outgoingActivity } + } as PostActivityImpededAction); + + yield call(sleep, HARD_SEND_TIMEOUT - sendTimeout, ponyfill); + + throw !echoed + ? new Error('timed out while waiting for outgoing message to echo back') + : new Error('timed out while waiting for postActivity to return any values'); + }) + }); - // Timeout could be due to either: - // - Post activity call may take too long time to complete - // - Direct Line service only respond on HTTP after bot respond to Direct Line - // - Activity may take too long time to echo back - - const sendTimeout: number = yield select(sendTimeoutSelector); - - const { - send: { echoBack } - }: { send: { echoBack: WebChatActivity } } = yield race({ - send: all({ - echoBack: echoBackCall, - postActivity: observeOnce(directLine.postActivity(outgoingActivity as DirectLineActivity)) - }), - timeout: call(function* () { - yield call(sleep, sendTimeout, ponyfill); - - // The IMPEDED action is for backward compatibility by changing `channelData.state` to "send failed". - // `channelData.state` is being deprecated in favor of `channelData['webchat:send-status']`. - // Please refer to #4362 for details. Remove on or after 2024-07-31. - yield put({ - type: POST_ACTIVITY_IMPEDED, - meta, - payload: { activity: outgoingActivity } - } as PostActivityImpededAction); - - yield call(sleep, HARD_SEND_TIMEOUT - sendTimeout, ponyfill); - - throw !echoed - ? new Error('timed out while waiting for outgoing message to echo back') - : new Error('timed out while waiting for postActivity to return any values'); - }) - }); + yield put({ + type: POST_ACTIVITY_FULFILLED, + meta, + payload: { activity: echoBack } + } as PostActivityFulfilledAction); + } else { + // Optimistic mode: mark as fulfilled immediately after send + yield observeOnce(directLine.postActivity(outgoingActivity as DirectLineActivity)); - yield put({ type: POST_ACTIVITY_FULFILLED, meta, payload: { activity: echoBack } } as PostActivityFulfilledAction); + yield put({ + type: POST_ACTIVITY_FULFILLED, + meta, + payload: { activity: outgoingActivity } + } as PostActivityFulfilledAction); + } } catch (err) { console.error('botframework-webchat: Failed to post activity to chat adapter.', err); @@ -206,8 +241,11 @@ export default function* postActivitySaga(ponyfill: GlobalScopePonyfill) { }) { let numActivitiesPosted = 0; + // When voice is enabled, use optimistic mode (no echo back wait) + const waitForEchoBack = !isVoiceEnabled(directLine); + yield takeEvery(POST_ACTIVITY, function* postActivityWrapper(action: PostActivityAction) { - yield* postActivity(directLine, userID, username, numActivitiesPosted++, action, ponyfill); + yield* postActivity(directLine, userID, username, numActivitiesPosted++, action, ponyfill, waitForEchoBack); }); }); } diff --git a/packages/core/src/sagas/queueIncomingActivitySaga.ts b/packages/core/src/sagas/queueIncomingActivitySaga.ts index 88717edc3e..3a849f329b 100644 --- a/packages/core/src/sagas/queueIncomingActivitySaga.ts +++ b/packages/core/src/sagas/queueIncomingActivitySaga.ts @@ -8,11 +8,39 @@ import activitiesSelector, { ofType as activitiesOfType } from '../selectors/act import sleep from '../utils/sleep'; import whileConnected from './effects/whileConnected'; +import type { DirectLineJSBotConnection } from '../types/external/DirectLineJSBotConnection'; import type { GlobalScopePonyfill } from '../types/GlobalScopePonyfill'; // We will hold up the replying activity if the originating activity did not arrive, up to 5 seconds. const REPLY_TIMEOUT = 5000; +/** + * Returns whether the DirectLine adapter is operating in voice (bi-directional WebSocket) mode. + * + * In text mode we delay rendering a bot reply until the activity it references via `replyToId` + * appears in the transcript โ€” this keeps the visual order accessible. + * + * Voice mode invalidates that assumption: + * - The client does not send an `activity.id`, and the server-assigned id is never echoed back, + * so `replyToId` on incoming activities never matches anything already in the transcript. + * - Traffic is bi-directional over the same WebSocket, so an incoming activity always arrives + * after the outgoing one โ€” visual order is implicitly correct. + * + * Therefore, when voice mode is enabled we skip the `replyToId` wait to avoid blocking the UI + * for an activity that will never arrive. + */ +function isVoiceEnabled(directLine: DirectLineJSBotConnection): boolean { + if (typeof directLine.getIsVoiceModeEnabled === 'function') { + try { + return Boolean(directLine.getIsVoiceModeEnabled()); + } catch { + return false; + } + } + + return false; +} + function* takeEveryAndSelect(actionType, selector, fn) { // select() will free up the code execution. // If we pair up with takeEvery(), it will allow actions to slip through. @@ -51,7 +79,12 @@ function* waitForActivityId(replyToId, initialActivities) { } } -function* queueIncomingActivity({ userID }: { userID: string }, ponyfill: GlobalScopePonyfill) { +function* queueIncomingActivity( + { directLine, userID }: { directLine: DirectLineJSBotConnection; userID: string }, + ponyfill: GlobalScopePonyfill +) { + const voiceModeEnabled = isVoiceEnabled(directLine); + yield takeEveryAndSelect( QUEUE_INCOMING_ACTIVITY, activitiesSelector, @@ -64,7 +97,7 @@ function* queueIncomingActivity({ userID }: { userID: string }, ponyfill: Global // To speed up the first activity render time, we do not delay the first activity from the bot. // Even if it is the first activity from the bot, the bot might be "replying" to the "conversationUpdate" event. // Thus, the "replyToId" will always be there even it is the first activity in the conversation. - if (replyToId && initialBotActivities.length) { + if (replyToId && initialBotActivities.length && !voiceModeEnabled) { // Either the activity replied to is in the transcript or after timeout. const result = yield race({ _: waitForActivityId(replyToId, initialActivities), diff --git a/packages/core/src/types/internal/WebChatOutgoingActivity.ts b/packages/core/src/types/internal/WebChatOutgoingActivity.ts index 063c63c6ff..0d0eb8d2c8 100644 --- a/packages/core/src/types/internal/WebChatOutgoingActivity.ts +++ b/packages/core/src/types/internal/WebChatOutgoingActivity.ts @@ -49,6 +49,7 @@ type WebChatOutgoingActivity = { locale: string; localTimestamp: string; localTimezone?: string; + timestamp?: string; } & (Type extends 'event' ? OutgoingEventActivityEssence : Type extends 'message' diff --git a/packages/fluent-theme/src/components/activityStatus/VoiceTranscriptActivityStatus.module.css b/packages/fluent-theme/src/components/activityStatus/VoiceTranscriptActivityStatus.module.css index b23245625b..575fea90b1 100644 --- a/packages/fluent-theme/src/components/activityStatus/VoiceTranscriptActivityStatus.module.css +++ b/packages/fluent-theme/src/components/activityStatus/VoiceTranscriptActivityStatus.module.css @@ -8,13 +8,11 @@ margin-block-start: calc(var(--webchat__padding--regular) / 2); } -.voice-transcript-activity-status__agent-label { - color: var(--webchat-colorNeutralForeground3); - font-size: var(--webchat-fontSizeBase100); - font-weight: var(--webchat-fontWeightSemibold); - line-height: var(--webchat-lineHeightBase100); -} - .voice-transcript-activity-status__divider { color: var(--webchat-colorNeutralStroke2); + margin-block-end: var(--webchat-spacingVerticalXXS); +} + +.voice-transcript-activity-status__icon { + margin-block-start: var(--webchat-spacingVerticalXXS); } diff --git a/packages/fluent-theme/src/components/activityStatus/VoiceTranscriptActivityStatus.tsx b/packages/fluent-theme/src/components/activityStatus/VoiceTranscriptActivityStatus.tsx index 28f9202f0b..935dc9f405 100644 --- a/packages/fluent-theme/src/components/activityStatus/VoiceTranscriptActivityStatus.tsx +++ b/packages/fluent-theme/src/components/activityStatus/VoiceTranscriptActivityStatus.tsx @@ -1,39 +1,30 @@ -import { hooks } from 'botframework-webchat'; import { Timestamp } from 'botframework-webchat/component'; import { getVoiceActivityRole, getVoiceActivityText, type WebChatActivity } from 'botframework-webchat/internal'; -import React, { Fragment, memo } from 'react'; +import React, { memo } from 'react'; +import { FluentIcon } from '../icon'; import { useStyles } from '../../styles'; import styles from './VoiceTranscriptActivityStatus.module.css'; -const { useLocalizer } = hooks; - type VoiceTranscriptActivityStatusProps = Readonly<{ activity: WebChatActivity; }>; function VoiceTranscriptActivityStatus({ activity }: VoiceTranscriptActivityStatusProps) { const classNames = useStyles(styles); - const localize = useLocalizer(); const { timestamp } = activity; - const role = getVoiceActivityRole(activity); - const text = getVoiceActivityText(activity); - - const agentLabel = localize('ACTIVITY_STATUS_VOICE_TRANSCRIPT_AGENT_LABEL'); - if (!text) { + if (!getVoiceActivityText(activity)) { return null; } + const icon = getVoiceActivityRole(activity) === 'bot' ? 'audio-playing' : 'microphone-regular'; + return ( - {role === 'bot' && ( - - {agentLabel} - {timestamp && {'|'}} - - )} {timestamp && } + {timestamp && {'|'}} + ); } diff --git a/packages/fluent-theme/src/components/icon/FluentIcon.module.css b/packages/fluent-theme/src/components/icon/FluentIcon.module.css index f6f274c23a..830c9ff253 100644 --- a/packages/fluent-theme/src/components/icon/FluentIcon.module.css +++ b/packages/fluent-theme/src/components/icon/FluentIcon.module.css @@ -50,10 +50,14 @@ --webchat__fluent-icon--mask: url('data:image/svg+xml;utf8,'); } -:global(.webchat) .icon--microphone { +:global(.webchat) .icon--microphone-filled { --webchat__fluent-icon--mask: url('data:image/svg+xml;utf8,'); } +:global(.webchat) .icon--microphone-regular { + --webchat__fluent-icon--mask: url('data:image/svg+xml;utf8,'); +} + :global(.webchat) .icon--audio-playing { --webchat__fluent-icon--mask: url('data:image/svg+xml;utf8,'); } diff --git a/packages/fluent-theme/src/components/sendBox/MicrophoneToolbarButton.tsx b/packages/fluent-theme/src/components/sendBox/MicrophoneToolbarButton.tsx index 946f2a5e88..c9cdc45909 100644 --- a/packages/fluent-theme/src/components/sendBox/MicrophoneToolbarButton.tsx +++ b/packages/fluent-theme/src/components/sendBox/MicrophoneToolbarButton.tsx @@ -47,7 +47,16 @@ function MicrophoneToolbarButton() { onClick={handleMicrophoneClick} type="button" > - + ); } diff --git a/packages/fluent-theme/src/components/sendBox/SendBox.tsx b/packages/fluent-theme/src/components/sendBox/SendBox.tsx index 05fb2bf184..d8417329a6 100644 --- a/packages/fluent-theme/src/components/sendBox/SendBox.tsx +++ b/packages/fluent-theme/src/components/sendBox/SendBox.tsx @@ -77,16 +77,14 @@ function SendBox(props: Props) { const setMessage = props.isPrimary ? setGlobalMessage : setLocalMessage; const isBlueprint = uiState === 'blueprint'; + // Disable text input and send button when mic is active to prevent race conditions and as per design + const isVoiceRecording = recording && showMicrophoneButton; + const [errorMessage, commitLatestError] = useSubmitError({ message, attachments }); const isMessageLengthExceeded = !!maxMessageLength && message.length > maxMessageLength; const shouldShowMessageLength = useMemo( - () => - !isBlueprint && - !telephoneKeypadShown && - !!maxMessageLength && - isFinite(maxMessageLength) && - !showMicrophoneButton, - [isBlueprint, telephoneKeypadShown, maxMessageLength, showMicrophoneButton] + () => !isBlueprint && !telephoneKeypadShown && !!maxMessageLength && isFinite(maxMessageLength), + [isBlueprint, telephoneKeypadShown, maxMessageLength] ); const shouldShowTelephoneKeypad = !isBlueprint && telephoneKeypadShown; @@ -223,9 +221,9 @@ function SendBox(props: Props) { onClick={handleClick} onInput={handleMessageChange} placeholder={ - props.placeholder ?? (showMicrophoneButton ? speechStateMessage : localize('TEXT_INPUT_PLACEHOLDER')) + props.placeholder ?? (isVoiceRecording ? speechStateMessage : localize('TEXT_INPUT_PLACEHOLDER')) } - readOnly={showMicrophoneButton} + readOnly={isVoiceRecording} ref={inputRef} value={message} /> @@ -257,19 +255,17 @@ function SendBox(props: Props) { {!hideTelephoneKeypadButton && } {!disableFileUpload && } + {showMicrophoneButton && } - {showMicrophoneButton ? ( - - ) : ( - - - - )} + + + + {!disableFileUpload && } diff --git a/packages/test/page-object/src/globals/testHelpers/createDirectLineEmulator.js b/packages/test/page-object/src/globals/testHelpers/createDirectLineEmulator.js index c29e9bdc27..7e6ebdbe22 100644 --- a/packages/test/page-object/src/globals/testHelpers/createDirectLineEmulator.js +++ b/packages/test/page-object/src/globals/testHelpers/createDirectLineEmulator.js @@ -38,11 +38,14 @@ export default function createDirectLineEmulator({ autoConnect = true, ponyfill connectionStatusDeferredObservable.next(2); }); + // Generic capabilities storage + const capabilities = new Map(); + const postActivityCallDeferreds = []; const postActivity = outgoingActivity => { // Auto-handle voice activities (continuous sending by mic) without requiring actPostActivity - // Voice activities are fire-and-forget and don't echo back - if (outgoingActivity.type === 'event' && outgoingActivity.name.includes('media')) { + // Voice mode uses fire-and-forget and don't echo back + if (capabilities.get('getIsVoiceModeEnabled')) { const id = uniqueId(); return new Observable(observer => { @@ -118,9 +121,6 @@ export default function createDirectLineEmulator({ autoConnect = true, ponyfill autoConnect && connectedWithResolvers.resolve(); - // Generic capabilities storage - const capabilities = new Map(); - // EventTarget for capability change notifications const eventTarget = new EventTarget(); From cb23d8b81d5be4dbf6f6393432a25cea28df826e Mon Sep 17 00:00:00 2001 From: Pranav Joshi Date: Thu, 30 Apr 2026 06:31:46 +0000 Subject: [PATCH 2/4] fix csp --- .../html2/speechToSpeech/csp.recording.html | 4 --- packages/api/src/StyleOptions.ts | 5 +-- .../api/src/assets/voiceProcessingSound.ts | 7 ---- packages/api/src/defaultStyleOptions.ts | 3 +- .../private/VoiceProcessingSoundBridge.tsx | 17 +++++++--- .../private/voiceProcessingSound.ts | 33 +++++++++++++++++++ 6 files changed, 50 insertions(+), 19 deletions(-) delete mode 100644 packages/api/src/assets/voiceProcessingSound.ts create mode 100644 packages/api/src/providers/SpeechToSpeech/private/voiceProcessingSound.ts diff --git a/__tests__/html2/speechToSpeech/csp.recording.html b/__tests__/html2/speechToSpeech/csp.recording.html index 97f02d5891..5b0712dd4d 100644 --- a/__tests__/html2/speechToSpeech/csp.recording.html +++ b/__tests__/html2/speechToSpeech/csp.recording.html @@ -72,10 +72,6 @@ directLine={directLine} store={store} nonce="WEB_CHAT_NONCE" - styleOptions={{ - // TODO: Use blob url instead of raw data URI and remove this workaround - voiceProcessingSound: false - }} /> , document.getElementById('webchat') diff --git a/packages/api/src/StyleOptions.ts b/packages/api/src/StyleOptions.ts index 85c3c3b168..41941713da 100644 --- a/packages/api/src/StyleOptions.ts +++ b/packages/api/src/StyleOptions.ts @@ -1027,10 +1027,11 @@ type StyleOptions = { * * - `string` โ€” a URL, data URI, or blob URL of the audio to play. * - `false` โ€” disables the sound cue entirely. + * - `undefined` โ€” uses a bundled default sound (lazily materialized to a `blob:` URL). * - * @default A bundled default sound (data URI) + * @default undefined */ - voiceProcessingSound?: string | false; + voiceProcessingSound?: string | false | undefined; /** * Whether the voice processing sound should loop while in `'processing'` state. diff --git a/packages/api/src/assets/voiceProcessingSound.ts b/packages/api/src/assets/voiceProcessingSound.ts deleted file mode 100644 index 4135aa0dfb..0000000000 --- a/packages/api/src/assets/voiceProcessingSound.ts +++ /dev/null @@ -1,7 +0,0 @@ -// Default voice processing sound (played while voice state is 'processing'). -// Override via styleOptions.voiceProcessingSound. -// TODO: Use blob URL instead of data URI and remove this workaround. -const VOICE_PROCESSING_SOUND_DATA_URI = - 'data:audio/mpeg;base64,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'; - -export default VOICE_PROCESSING_SOUND_DATA_URI; diff --git a/packages/api/src/defaultStyleOptions.ts b/packages/api/src/defaultStyleOptions.ts index 00df1cc6db..889523c547 100644 --- a/packages/api/src/defaultStyleOptions.ts +++ b/packages/api/src/defaultStyleOptions.ts @@ -1,6 +1,5 @@ /* eslint no-magic-numbers: "off" */ import StyleOptions from './StyleOptions'; -import VOICE_PROCESSING_SOUND_DATA_URI from './assets/voiceProcessingSound'; function fontFamily(fonts) { return fonts.map(font => `'${font}'`).join(', '); @@ -327,7 +326,7 @@ const DEFAULT_OPTIONS: Required = { showMicrophoneButton: 'auto', // Voice processing sound (played during voice state is 'processing') - voiceProcessingSound: VOICE_PROCESSING_SOUND_DATA_URI, + voiceProcessingSound: undefined, voiceProcessingSoundLoop: true, voiceProcessingSoundVolume: 0.5 }; diff --git a/packages/api/src/providers/SpeechToSpeech/private/VoiceProcessingSoundBridge.tsx b/packages/api/src/providers/SpeechToSpeech/private/VoiceProcessingSoundBridge.tsx index 2fe131f582..42041b147d 100644 --- a/packages/api/src/providers/SpeechToSpeech/private/VoiceProcessingSoundBridge.tsx +++ b/packages/api/src/providers/SpeechToSpeech/private/VoiceProcessingSoundBridge.tsx @@ -1,5 +1,7 @@ import { useEffect, useMemo } from 'react'; +import getVoiceProcessingSound from './voiceProcessingSound'; +import useShouldShowMicrophoneButton from '../../../hooks/internal/useShouldShowMicrophoneButton'; import useStyleOptions from '../../../hooks/useStyleOptions'; import useVoiceState from '../../../hooks/useVoiceState'; @@ -31,26 +33,33 @@ const play = (audio: HTMLAudioElement) => { * Plays a (looping) audio cue while voice mode is `'processing'`. * * Style options: - * - `voiceProcessingSound` โ€” URL/data-URI; `false` disables. + * - `voiceProcessingSound` โ€” URL/data-URI; `false` disables; when unset uses the bundled default. * - `voiceProcessingSoundLoop` โ€” defaults to `true`. * - `voiceProcessingSoundVolume` โ€” `0`โ€“`1`, defaults to `0.5`. + * + * Skipped entirely when the microphone button is hidden โ€” no mic means no voice flow to cue. */ export const VoiceProcessingSoundBridge = () => { const [{ voiceProcessingSound, voiceProcessingSoundLoop, voiceProcessingSoundVolume }] = useStyleOptions(); const [voiceState] = useVoiceState(); + const shouldShowMicrophoneButton = useShouldShowMicrophoneButton(); + + // Resolve the source: explicit `false` disables; an explicit string is used as-is; + // `undefined` falls back to the lazily-created default `blob:` URL. + const source = voiceProcessingSound === false ? undefined : (voiceProcessingSound ?? getVoiceProcessingSound()); const audio = useMemo(() => { - if (!voiceProcessingSound) { + if (!shouldShowMicrophoneButton || !source) { return undefined; } - const instance = new Audio(voiceProcessingSound); + const instance = new Audio(source); instance.loop = voiceProcessingSoundLoop ?? true; instance.volume = clamp(voiceProcessingSoundVolume ?? DEFAULT_VOLUME, MIN_VOLUME, MAX_VOLUME); return instance; - }, [voiceProcessingSound, voiceProcessingSoundLoop, voiceProcessingSoundVolume]); + }, [shouldShowMicrophoneButton, source, voiceProcessingSoundLoop, voiceProcessingSoundVolume]); useEffect(() => { if (audio && voiceState === 'processing') { diff --git a/packages/api/src/providers/SpeechToSpeech/private/voiceProcessingSound.ts b/packages/api/src/providers/SpeechToSpeech/private/voiceProcessingSound.ts new file mode 100644 index 0000000000..b6cb7de6bc --- /dev/null +++ b/packages/api/src/providers/SpeechToSpeech/private/voiceProcessingSound.ts @@ -0,0 +1,33 @@ +// Default voice processing sound (played while voice state is 'processing'). +// Override via styleOptions.voiceProcessingSound. +// +// The asset ships as a base64-encoded MP3 and is converted to a `blob:` URL on first +// access. This complies with strict CSP (`media-src blob:`) and avoids the cost of +// creating the blob for consumers who supply their own `voiceProcessingSound`. + +const MIME_TYPE = 'audio/mpeg'; + +const BASE64 = + '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'; + +let cachedBlobURL: string | undefined; + +/** + * Returns a `blob:` URL for the default processing sound, lazily creating it on first call. + * The blob lives for the page lifetime and is reused across renders. + */ +export default function getVoiceProcessingSound(): string { + if (!cachedBlobURL) { + const binary = atob(BASE64); + const bytes = new Uint8Array(binary.length); + + for (let i = 0; i < binary.length; i++) { + bytes[+i] = binary.charCodeAt(i); + } + + // eslint-disable-next-line no-restricted-properties + cachedBlobURL = URL.createObjectURL(new Blob([bytes.buffer as ArrayBuffer], { type: MIME_TYPE })); + } + + return cachedBlobURL; +} From 1ff79057e1c680c05d232a15fb47a4cd3f6ef544 Mon Sep 17 00:00:00 2001 From: Pranav Joshi Date: Thu, 30 Apr 2026 08:52:47 +0000 Subject: [PATCH 3/4] changelog entry --- CHANGELOG.md | 1 + .../SpeechToSpeech/private/voiceProcessingSound.ts | 10 +++++----- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2f0db9993d..8fe5304786 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -163,6 +163,7 @@ Breaking changes in this release: - Added core mute/unmute functionality for speech-to-speech via `useRecorder` hook (silent chunks keep server connection alive), in PR [#5688](https://github.com/microsoft/BotFramework-WebChat/pull/5688), by [@pranavjoshi](https://github.com/pranavjoshi001) - ๐Ÿงช Added incremental streaming Markdown renderer for livestreaming, in PR [#5799](https://github.com/microsoft/BotFramework-WebChat/pull/5799), by [@OEvgeny](https://github.com/OEvgeny) - Fixed streaming Markdown renderer to preserve link reference definitions during incremental rendering and recover on error, in PR [#5808](https://github.com/microsoft/BotFramework-WebChat/pull/5808), by [@OEvgeny](https://github.com/OEvgeny) +- Added multi-modal text + voice experience, in PR [#5817](https://github.com/microsoft/BotFramework-WebChat/pull/5817), by [@pranavjoshi](https://github.com/pranavjoshi001) ### Changed diff --git a/packages/api/src/providers/SpeechToSpeech/private/voiceProcessingSound.ts b/packages/api/src/providers/SpeechToSpeech/private/voiceProcessingSound.ts index b6cb7de6bc..fce0d5b11c 100644 --- a/packages/api/src/providers/SpeechToSpeech/private/voiceProcessingSound.ts +++ b/packages/api/src/providers/SpeechToSpeech/private/voiceProcessingSound.ts @@ -1,14 +1,14 @@ // Default voice processing sound (played while voice state is 'processing'). // Override via styleOptions.voiceProcessingSound. // -// The asset ships as a base64-encoded MP3 and is converted to a `blob:` URL on first -// access. This complies with strict CSP (`media-src blob:`) and avoids the cost of -// creating the blob for consumers who supply their own `voiceProcessingSound`. +// The asset ships as a base64-encoded OGG/Vorbis clip and is converted to a `blob:` URL +// on first access. This complies with strict CSP (`media-src blob:`) and avoids the cost +// of creating the blob for consumers who supply their own `voiceProcessingSound`. -const MIME_TYPE = 'audio/mpeg'; +const MIME_TYPE = 'audio/ogg'; const BASE64 = - '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'; + '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'; let cachedBlobURL: string | undefined; From b881612e3372f101d3168d91e70d35065c36f416 Mon Sep 17 00:00:00 2001 From: Pranav Joshi Date: Thu, 30 Apr 2026 09:33:39 +0000 Subject: [PATCH 4/4] changlog correct name --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8fe5304786..ff5e0dd2bc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -163,7 +163,7 @@ Breaking changes in this release: - Added core mute/unmute functionality for speech-to-speech via `useRecorder` hook (silent chunks keep server connection alive), in PR [#5688](https://github.com/microsoft/BotFramework-WebChat/pull/5688), by [@pranavjoshi](https://github.com/pranavjoshi001) - ๐Ÿงช Added incremental streaming Markdown renderer for livestreaming, in PR [#5799](https://github.com/microsoft/BotFramework-WebChat/pull/5799), by [@OEvgeny](https://github.com/OEvgeny) - Fixed streaming Markdown renderer to preserve link reference definitions during incremental rendering and recover on error, in PR [#5808](https://github.com/microsoft/BotFramework-WebChat/pull/5808), by [@OEvgeny](https://github.com/OEvgeny) -- Added multi-modal text + voice experience, in PR [#5817](https://github.com/microsoft/BotFramework-WebChat/pull/5817), by [@pranavjoshi](https://github.com/pranavjoshi001) +- Added multi-modal text + voice experience, in PR [#5817](https://github.com/microsoft/BotFramework-WebChat/pull/5817), by [@pranavjoshi001](https://github.com/pranavjoshi001) ### Changed