Нужна помощь в интеграции с text to speech - speech to text
Привет, вот ТЗ, там где на месте исполнителя стоят ??? значит это возможно вы.
Жду предложений
1. Настройка Asterisk FreePBX
Исполнитель: Владимир
Задачи:
- Настроить транки для маршрутизации входящих звонков:
Убедись, что все транки настроены правильно для обработки входящих вызовов через SIP-провайдера.
```bash
nano /etc/asterisk/sip.conf
```
Пример конфигурации транка:
```ini
[my-trunk]
type=peer
host=sip.provider.com
username=my_user
secret=my_secret
fromuser=my_user
context=from-trunk
insecure=invite,port
disallow=all
allow=ulaw
```
- Настроить IVR-меню:
IVR будет перенаправлять звонки на внешний сервис или API для последующей обработки. Настрой IVR-меню через FreePBX GUI, указав правильные внешние маршруты для передачи звонков.
Пример конфигурации:
```ini
[ivr-menu]
exten => s,1,Answer()
exten => s,n,Background(custom/welcome_message)
exten => s,n,WaitExten()
exten => 1,1,Dial(SIP/customer_service,20)
exten => 2,1,Goto(api-processing,s,1)
```
- Проверить правильность передачи звонков через IVR.
---
2. Интеграция Google TTS (Text-to-Speech)
Исполнитель: ???
Задачи:
- Настроить API для связи с Google TTS. Используй официальную библиотеку Google Cloud для TTS на Python:
```bash
pip install google-cloud-texttospeech
```
Пример Python-кода для передачи текста и получения аудио:
```python
from google.cloud import texttospeech
client = texttospeech.TextToSpeechClient()
synthesis_input = texttospeech.SynthesisInput(text="Your response text")
voice = texttospeech.VoiceSelectionParams(
language_code="en-US",
ssml_gender=texttospeech.SsmlVoiceGender.NEUTRAL)
audio_config = texttospeech.AudioConfig(audio_encoding=texttospeech.AudioEncoding.MP3)
response = client.synthesize_speech(
input=synthesis_input, voice=voice, audio_config=audio_config)
# Save the audio output
with open("output.mp3", "wb") as out:
out.write(response.audio_content)
```
- Обеспечить передачу аудиофайла обратно в Asterisk.
Используй команду AGI для воспроизведения аудиофайлов в Asterisk:
```bash
exten => s,n,AGI(google_tts.py,"Your text here")
```
---
3. Интеграция Binom AI
Исполнитель: ???
Задачи:
- Интегрировать с API для передачи аудио запроса клиента в Binom AI.
Вот пример API:
POST https://prod-api.binomai.com/api/public/chats
Request schema: ChatRequest
Response schema: Chat
Instructions:
Inactive chat lifetime should be no longer than 3 days to protect context from growing and increase resource costs. Please implement chat rotation logic on your side to always create a new chat when an old chat has no activity for the last 3 days.
Example:
curl https://prod-api.binomai.com/api/public/chats \
-u RLCacg7CTz2FlTlzdeoD9w==: \
-d chat_id="chat_id_on_your_side"
POST https://prod-api.binomai.com/api/public/chats/{chat_id}/messages
Request schema: MessageRequest
Response schema: Message
Example:
curl https://prod-api.binomai.com/api/public/chats/{chat_id}/messages \
-u RLCacg7CTz2FlTlzdeoD9w==: \
-d chat_id="chat_id_on_your_side" \
-d "file_urls[]=https://example.com/path/to/file1.mp3"
GET https://prod-api.binomai.com/api/public/chats/{chat_id}/messages
Response schema: MessageList
Instructions:
MessageList response will return a run_in_progress parameter. When it's true, we are preparing a response from AI. Please pull the list not often than every 5000 milliseconds (5 seconds) and stop pulling when run_in_progress returns a false value.
Example:
curl https://prod-api.binomai.com/api/public/chats/{chat_id}/messages \
-u RLCacg7CTz2FlTlzdeoD9w==:
ChatRequest: {
type: :object,
required: [],
properties: {
integration_chat_id: { type: :string }
}
}
Chat: {
type: :object,
required: [:id, :form, :created_at],
properties: {
id: { type: :string, format: :uuid },
form: { type: :string, enum: [:public_chat, :widget, :helpcrunch, :api] },
integration_chat_id: { type: :string },
created_at: { type: :string, format: 'date-time' }
}
}
MessageRequest: {
type: :object,
required: [:content],
properties: {
content: { type: :string },
file_urls: { type: :array, items: {
type: :string
} }
}
}
Message: {
type: :object,
required: [:id, :content, :role, :created_at],
properties: {
id: { type: :string, format: :uuid },
content: { type: :string },
role: { type: :string, enum: [:user, :assistant, :system, :operator] },
files: { type: :array, items: {
type: :object,
required: [:id, :signed_id, :content_type, :url],
properties: {
id: { type: :string },
name: { type: :string },
signed_id: { type: :string },
content_type: { type: :string },
url: { type: :string },
thumb: { type: :string },
transcription: { type: :string }
}
} },
message_feedback: {
type: :object,
required: [:id, :state, :comment, :created_at],
properties: {
id: { type: :string },
state: { type: :string, enum: [:like, :dislike] },
comment: { type: :string },
created_at: { type: :string, format: 'date-time' }
}
},
created_at: { type: :string, format: 'date-time' }
}
}
4. Интеграция Google STT (Speech-to-Text)
Исполнитель: ???
Задачи:
- Настроить API для передачи аудиозапросов в Google STT. Используй официальную библиотеку Google Cloud для STT:
```bash
pip install google-cloud-speech
```
Пример Python-кода для преобразования аудио в текст:
```python
from google.cloud import speech
client = speech.SpeechClient()
def transcribe_audio(audio_file):
with open(audio_file, "rb") as audio:
audio_content = audio.read()
audio = speech.RecognitionAudio(content=audio_content)
config = speech.RecognitionConfig(
encoding=speech.RecognitionConfig.AudioEncoding.LINEAR16,
sample_rate_hertz=16000,
language_code="en-US",
)
response = client.recognize(config=config, audio=audio)
return response.results[0].alternatives[0].transcript
```
- Передать полученный текст в Binom AI через API.
---
5. Возвращение данных в Asterisk и воспроизведение аудио клиенту
Исполнитель: Владимир
Задачи:
- Проверить корректную передачу аудиофайлов из Google TTS обратно в Asterisk. Аудио должно воспроизводиться через AGI-скрипт или встроенную команду `Playback`:
```bash
exten => s,n,Playback(/path/to/output.mp3)
```
- Убедиться, что клиент получает ответ в аудиоформате без задержек и с корректной качественной обработкой.
___
Дополнительные моменты:
- Логирование: Все этапы должны логироваться для отслеживания ошибок. Логи должны включать обработку запросов в Google TTS, STT, и Binom AI.
- Мониторинг: Добавь систему мониторинга для проверки состояния всех сервисов.
-
11 дней62 445 UAH
8793 60 0 1 11 дней62 445 UAHДобрый день!
Готов сделать интеграции Google STT (Speech-to-Text), Binom AI, Google TTS (Text-to-Speech)
Есть опыт реализации подобных проектов. Могу предоставить кейс в ЛС.
Портфолио:Freelancehunt
Буду рад обсудить проект!
Актуальные фриланс-проекты в категории Веб-программирование
Техническая поддержка веб-платформы (Python/Django)Есть работающий веб-проект, нужно поддерживать и постепенно приводить в порядок, без переписывания с нуля. Стек проекта: Backend: Python, Django, Django Rest Framework Frontend: Next.js База данных: PostgreSQL Инфраструктура: AWS (EC2), Nginx Есть интеграции с внешними API… Python, Веб-программирование ∙ 4 часа 22 минуты назад ∙ 30 ставок |
Посадка HTML в WordPressТЗ: перенос HTML в WordPress https://bikeinbali.com/new Сделать кастомную WordPress classic theme на базе готовых HTML-макетов.Не использовать: Elementor WPBakery тяжёлые page builder themes Единые элементыСделать глобальные: header.php ( Header/footer должны быть… Веб-программирование, Создание сайта под ключ ∙ 9 часов 3 минуты назад ∙ 64 ставки |
Доработка сайта на Ocstore 3
700 UAH
Ocstore 3 Шаблон Upstore Поправить некоторые моменты https://docs.google.com/document/d/1-TmTo3lh_ElFjPMQCGs2sVCsVSzq-V-Z/edit?usp=sharing&ouid=105344407605205919725&rtpof=true&sd=true Ожидаю ваши предложения PHP, Веб-программирование ∙ 9 часов 59 минут назад ∙ 53 ставки |
Собрать страницу на Elementor ProНеобходимо собрать с нуля страницу на сайте WordPress на плагине Elementor (Pro-версия). Десктоп версия + адаптивная версия планшет и мобильный. Дизайн предоставляем в Figma. Шаблон документа дизайна — в приложениях (только десктоп версия). Необходимо будет использовать… HTML и CSS верстка, Веб-программирование ∙ 10 часов 3 минуты назад ∙ 53 ставки |
Перенос и настройка готовой темы сайта (шаблона) на WordPressИщем WordPress-разработчика для установки и настройки уже готового шаблона сайта. Есть приобретенный хостинг и домен, а также готовая тема, которую нужно реализовать на сайте: https://foxiz.io/coin/ Задачи: Установить WordPress на хостинг (если еще не установлено) Загрузить и… Веб-программирование, Создание сайта под ключ ∙ 11 часов 40 минут назад ∙ 81 ставка |