голосовые_сервисы_помогут_голосовой_почте

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

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>​
голосовые_сервисы_помогут_голосовой_почте.1608558396.txt.gz · Last modified: 2020/12/21 16:46 by val