Я работаю над проектом голосового помощника на Python. Ассистент слушает ввод пользователя, генерирует ответ, используя языковую модель, а затем произносит ответ с помощью AWS Polly. Я хочу, чтобы помощник немедленно прекратил произносить свой ответ, если пользователь снова начнет говорить, пока помощник все еще говорит.
ВОТ КОД:
def text_to_speech(text):
try:
# Initialize AWS session with credentials
boto_session = boto3.Session(
aws_access_key_id=os.getenv('AWS_ACCESS_KEY_ID'),
aws_secret_access_key=os.getenv('AWS_SECRET_ACCESS_KEY'),
region_name='AWS_REGION' # Adjust region as needed
)
# Create a new Polly client
polly_client = boto_session.client('polly')
# Synthesize speech
response = polly_client.synthesize_speech(
Text=text,
OutputFormat='mp3',
VoiceId='Raveena' # Adjust voice as needed
)
# Save synthesized audio to a temporary file
with tempfile.NamedTemporaryFile(suffix='.mp3', delete=False) as f:
audio_file_path = f.name
f.write(response['AudioStream'].read())
# Initialize pygame mixer
pygame.mixer.init()
# Load and play audio file
pygame.mixer.music.load(audio_file_path)
pygame.mixer.music.play()
# Start listening for interruptions
recognizer = sr.Recognizer()
with sr.Microphone() as source:
recognizer.adjust_for_ambient_noise(source, duration=1)
while pygame.mixer.music.get_busy():
print("Listening for interruption...")
audio = recognizer.listen(source, phrase_time_limit=0.5)
try:
text = recognizer.recognize_google(audio)
if text:
print("Interruption detected!")
pygame.mixer.music.stop()
break
except sr.UnknownValueError:
pass
except sr.RequestError as e:
print(f"Could not request results; {e}")
# Clean up temporary file
os.remove(audio_file_path)
except Exception as ex:
print("Error during text to speech:", ex)
Подробнее здесь: https://stackoverflow.com/questions/785 ... ser-speaks
Как прервать воспроизведение текста в речь, когда пользователь говорит ⇐ Python
Программы на Python
1716443806
Anonymous
Я работаю над проектом голосового помощника на Python. Ассистент слушает ввод пользователя, генерирует ответ, используя языковую модель, а затем произносит ответ с помощью AWS Polly. Я хочу, чтобы помощник немедленно прекратил произносить свой ответ, если пользователь снова начнет говорить, пока помощник все еще говорит.
[b]ВОТ КОД:[/b]
def text_to_speech(text):
try:
# Initialize AWS session with credentials
boto_session = boto3.Session(
aws_access_key_id=os.getenv('AWS_ACCESS_KEY_ID'),
aws_secret_access_key=os.getenv('AWS_SECRET_ACCESS_KEY'),
region_name='AWS_REGION' # Adjust region as needed
)
# Create a new Polly client
polly_client = boto_session.client('polly')
# Synthesize speech
response = polly_client.synthesize_speech(
Text=text,
OutputFormat='mp3',
VoiceId='Raveena' # Adjust voice as needed
)
# Save synthesized audio to a temporary file
with tempfile.NamedTemporaryFile(suffix='.mp3', delete=False) as f:
audio_file_path = f.name
f.write(response['AudioStream'].read())
# Initialize pygame mixer
pygame.mixer.init()
# Load and play audio file
pygame.mixer.music.load(audio_file_path)
pygame.mixer.music.play()
# Start listening for interruptions
recognizer = sr.Recognizer()
with sr.Microphone() as source:
recognizer.adjust_for_ambient_noise(source, duration=1)
while pygame.mixer.music.get_busy():
print("Listening for interruption...")
audio = recognizer.listen(source, phrase_time_limit=0.5)
try:
text = recognizer.recognize_google(audio)
if text:
print("Interruption detected!")
pygame.mixer.music.stop()
break
except sr.UnknownValueError:
pass
except sr.RequestError as e:
print(f"Could not request results; {e}")
# Clean up temporary file
os.remove(audio_file_path)
except Exception as ex:
print("Error during text to speech:", ex)
Подробнее здесь: [url]https://stackoverflow.com/questions/78521172/how-to-interrupt-text-to-speech-playback-when-user-speaks[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...