Мы используем Azure Conversation Transcriber для преобразования речи в текст в режиме реального времени с помощью дневника. Нам нужно включить функцию паузы_резюме. Мы пробовали разные способы, но ничего не помогло.
Azure предоставляет только функцию stop_transcribing_async(), которая полностью останавливает текущий сеанс.
Я прикрепил код, который мы пробовал, но не работает. Любая помощь будет оценена по достоинству. Я приложил блок кода, содержащий логику приостановки и возобновления. Пожалуйста, посоветуйте, какой еще метод мы могли бы использовать.
В приведенном ниже коде мы полностью останавливаем транскрибатор после передачи сообщения «пауза» и перезапускаем его после обнаружения сообщения «возобновление». .
async def receive_audio(uuid, path):
audio_queue = Queue(maxsize=0)
transcriber_state = False
try:
conversation_transcriber, push_stream = create_conversation_transcriber(
CONNECTIONS.connections[uuid]
)
# Start continuous recognition
conversation_transcriber.start_transcribing_async().get()
transcriber_state = True
while True:
# Receive audio data from the WebSocket
websocket = CONNECTIONS.connections[uuid]["websocket"]
data = await websocket.recv()
logger.info(CONNECTIONS.connections[uuid]['state'])
if isinstance(data, str):
logger.info(f"Current State: {CONNECTIONS.connections[uuid]['state']}")
if data == "inactive":
logger.info("Pausing the transcriber...")
conversation_transcriber.stop_transcribing_async().get()
push_stream.close()
transcriber_state = False
elif data == "active" and not transcriber_state:
logger.info(f"Resuming the transcriber...")
conversation_transcriber, push_stream = create_conversation_transcriber()
conversation_transcriber.start_transcribing_async().get()
transcriber_state = True
CONNECTIONS.connections[uuid]["state"] = data
if CONNECTIONS.connections[uuid]["state"] == "active":
audio_queue.put_nowait(data)
while not audio_queue.empty():
chunk = get_chunk_from_queue(q=audio_queue, chunk_size=4096)
CONNECTIONS.connections[uuid]["audio_buffer"] += chunk
push_stream.write(chunk)
except websockets.exceptions.ConnectionClosed as e:
logger.info("Connection closed")
logger.info(e)
conversation_transcriber.stop_transcribing_async().get()
push_stream.close()
except Exception as e:
logger.error(f"Error in receive_audio: {e}")
finally:
await websocket.close(code=1000)
Подробнее здесь: https://stackoverflow.com/questions/790 ... ranscriber
Как включить функцию паузы и возобновления в транскрибатор разговоров Azure? ⇐ Python
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Как включить функцию паузы и возобновления в транскрибатор разговоров Azure?
Anonymous » » в форуме Python - 0 Ответы
- 24 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Как включить функцию паузы и возобновления в транскрибатор разговоров Azure?
Anonymous » » в форуме Python - 0 Ответы
- 20 Просмотры
-
Последнее сообщение Anonymous
-