realtimestt_test.py 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. print("Initializing.")
  2. from RealtimeSTT import AudioToTextRecorder
  3. import os
  4. import colorama
  5. import logging
  6. import traceback
  7. from colorama import Fore, Back, Style
  8. colorama.init()
  9. full_sentences = []
  10. displayed_text = ""
  11. def clear_console():
  12. logging.debug('Clearing console def clear_console():')
  13. os.system('clear' if os.name == 'posix' else 'cls')
  14. def text_detected(text):
  15. global displayed_text
  16. logging.debug('Processing detected text def text_detected(text)')
  17. sentences_with_style = [
  18. f"{Fore.YELLOW + sentence + Style.RESET_ALL if i % 2 == 0 else Fore.CYAN + sentence + Style.RESET_ALL} "
  19. for i, sentence in enumerate(full_sentences)
  20. ]
  21. new_text = "".join(sentences_with_style).strip() + " " + text if len(sentences_with_style) > 0 else text
  22. if new_text != displayed_text:
  23. displayed_text = new_text
  24. clear_console()
  25. print(displayed_text)
  26. recorder_config = {
  27. 'spinner': False,
  28. 'model': 'large-v2',
  29. 'language': 'en',
  30. 'silero_sensitivity': 0.01,
  31. 'webrtc_sensitivity': 3,
  32. 'post_speech_silence_duration': 0.6,
  33. 'min_length_of_recording': 0.2,
  34. 'min_gap_between_recordings': 0,
  35. 'enable_realtime_transcription': True,
  36. 'realtime_processing_pause': 0,
  37. 'realtime_model_type': 'small.en',
  38. 'on_realtime_transcription_stabilized': text_detected,
  39. }
  40. recorder = AudioToTextRecorder(**recorder_config)
  41. print("Say something...")
  42. while True:
  43. logging.basicConfig(level=logging.DEBUG, filename='app.log', filemode='w', format='%(name)s - %(levelname)s - %(message)s')
  44. logging.debug('Wait for text')
  45. full_sentences.append(recorder.text())
  46. text_detected("")