Как включить функцию паузы и возобновления в транскрибатор разговоров Azure?Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Как включить функцию паузы и возобновления в транскрибатор разговоров Azure?

Сообщение Anonymous »

Мы используем 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
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»