This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
|
голосовые_сервисы_помогут_голосовой_почте [2020/12/21 16:46] val |
голосовые_сервисы_помогут_голосовой_почте [2026/06/22 14:42] (current) val [Шаг 4. Разворачиваем Yandex SpeechKit] |
||
|---|---|---|---|
| Line 30: | Line 30: | ||
| ==== Система ==== | ==== Система ==== | ||
| - | * Linux [[http://val.bmstu.ru/unix/img/My%20Documents/debian_10.0_64_01.ova|Debian 10]] в домашней сети | + | * Linux [[https://val.bmstu.ru/unix/img/My%20Documents/debian_10.11_64_01.ova|Debian 10]] в домашней сети |
| ==== Настройка сети ==== | ==== Настройка сети ==== | ||
| Line 97: | Line 97: | ||
| * Используя тему "[[Сервис Asterisk#Запись звукового файла]]" записываем и прослушиваем сообщение | * Используя тему "[[Сервис Asterisk#Запись звукового файла]]" записываем и прослушиваем сообщение | ||
| - | ===== Шаг 4. Разворачиваем Yandex SpeechKit ====== | + | ===== Шаг 4. ====== |
| + | |||
| + | ==== Разворачиваем Yandex SpeechKit === | ||
| * [[https://cloud.yandex.ru/docs/free-trial/concepts/quickstart|Как воспользоваться пробным периодом]] | * [[https://cloud.yandex.ru/docs/free-trial/concepts/quickstart|Как воспользоваться пробным периодом]] | ||
| * [[https://console.cloud.yandex.ru/billing]] | * [[https://console.cloud.yandex.ru/billing]] | ||
| + | * Установка ПО для [[Перекодировка звука#Перекодировка в ogg формат]] | ||
| * Используя [[Пакет sudo]] переключаемся на пользователя аsterisk | * Используя [[Пакет sudo]] переключаемся на пользователя аsterisk | ||
| - | * [[Перекодировка звука]] в ogg | + | * [[Перекодировка звука#Перекодировка в ogg формат]] записанного голосового сообщения |
| * Инициализируем и тестируем распознавание [[Yandex SpeechKit]] | * Инициализируем и тестируем распознавание [[Yandex SpeechKit]] | ||
| + | ==== Или Whisper ==== | ||
| + | |||
| + | <code> | ||
| + | # su - asterisk | ||
| + | </code> | ||
| + | |||
| + | * [[Whisper]] | ||
| ===== Шаг 5. Развертываем систему рассылки email ====== | ===== Шаг 5. Развертываем систему рассылки email ====== | ||
| Line 129: | Line 139: | ||
| if [ -z "$MAILFROM" ] | if [ -z "$MAILFROM" ] | ||
| then | then | ||
| - | MAILFROM=asterisk@val.bmstu.ru | + | MAILFROM=asterisk@server.corpX.un |
| fi | fi | ||
| logger -t asterisk -p local0.info $@ | logger -t asterisk -p local0.info $@ | ||
| #exit 0 | #exit 0 | ||
| - | |||
| - | FOLDER_ID=b1gg4j6ru4esprat3uu7 | ||
| - | IAM_TOKEN=`/var/lib/asterisk/yandex-cloud/bin/yc iam create-token` | ||
| /usr/bin/sox -t al -r 8000 -c 1 ${RECFILENAME}.alaw ${RECFILENAME}.wav | /usr/bin/sox -t al -r 8000 -c 1 ${RECFILENAME}.alaw ${RECFILENAME}.wav | ||
| Line 144: | Line 151: | ||
| -acodec libvorbis ${RECFILENAME}.ogg | -acodec libvorbis ${RECFILENAME}.ogg | ||
| - | /usr/bin/curl -s -X POST -H "Authorization: Bearer ${IAM_TOKEN}" \ | + | #FOLDER_ID=b1gg4j6ru4esprat3uu7 |
| - | --data-binary "@${RECFILENAME}.ogg" \ | + | #IAM_TOKEN=`/var/lib/asterisk/yandex-cloud/bin/yc iam create-token` |
| - | "https://stt.api.cloud.yandex.net/speech/v1/stt:recognize?folderId=${FOLDER_ID}" \ | + | #/usr/bin/curl -s -X POST -H "Authorization: Bearer ${IAM_TOKEN}" \ |
| - | | jq '.result' | tr -d '"' > ${RECFILENAME}.txt | + | # --data-binary "@${RECFILENAME}.ogg" \ |
| + | # "https://stt.api.cloud.yandex.net/speech/v1/stt:recognize?folderId=${FOLDER_ID}" \ | ||
| + | # | jq '.result' | tr -d '"' > ${RECFILENAME}.txt | ||
| + | |||
| + | source ~/venv1/bin/activate | ||
| + | cd $DIR | ||
| + | ~/venv1/bin/whisper ${FILENAME}.ogg --model base --device cpu --language ru >/dev/null 2>&1 | ||
| + | cd | ||
| export EMAIL="${NAMEFROM}<${MAILFROM}>" | export EMAIL="${NAMEFROM}<${MAILFROM}>" | ||
| Line 156: | Line 170: | ||
| exit 0 | exit 0 | ||
| </code><code> | </code><code> | ||
| + | # chmod +x /usr/local/bin/mailsend.sh | ||
| + | |||
| + | # su - asterisk | ||
| + | |||
| + | $ wget https://val.bmstu.ru/unix/Media/speech.alaw -P /usr/share/asterisk/sounds/recordings/ | ||
| + | |||
| + | $ /usr/local/bin/mailsend.sh speech user3@corpX.un '' 401 '' | ||
| + | |||
| # cat /etc/asterisk/extensions.conf | # cat /etc/asterisk/extensions.conf | ||
| </code><code> | </code><code> | ||
| Line 165: | Line 187: | ||
| exten => _4XX,n,Set(MY-CALLED-USER-ID=${SIPPEER(${EXTEN},chanvar[MY-USER-ID])}) | exten => _4XX,n,Set(MY-CALLED-USER-ID=${SIPPEER(${EXTEN},chanvar[MY-USER-ID])}) | ||
| exten => _4XX,n,Goto(mailrec,s,1) | exten => _4XX,n,Goto(mailrec,s,1) | ||
| + | |||
| + | ... | ||
| [mailrec] | [mailrec] | ||
| exten => s,1,Playback(vm-intro) | exten => s,1,Playback(vm-intro) | ||
| - | exten => s,n,Record(recordings/${UNIQUEID}.alaw,,,xk) | + | exten => s,n,Record(recordings/${UNIQUEID}.alaw,,29,xk) |
| exten => s,n,Hangup() | exten => s,n,Hangup() | ||
| - | exten => h,1,System(/usr/local/bin/mailsend.sh ${UNIQUEID} ${MY-CALLED-USER-ID} ${MY-USER-ID}.empty ${CALLERID(num)} ${CALLERID(name)}.empty &) | + | exten => h,1,System(/usr/local/bin/mailsend.sh ${UNIQUEID} ${MY-CALLED-USER-ID} ${MY-USER-ID}.empty ${CALLERID(num)} "${CALLERID(name)}.empty" &) |
| + | |||
| </code> | </code> | ||