1- import os
2- from os .path import join , dirname
3- from dotenv import load_dotenv
1+ from pprint import pprint
42from fastapi import FastAPI , Body , Request
53from vonage_voice import Input , NccoAction , Speech , Talk
64
7- dotenv_path = join (dirname (__file__ ), '../.env' )
8- load_dotenv (dotenv_path )
9-
10- VONAGE_VIRTUAL_NUMBER = os .environ .get ('VONAGE_VIRTUAL_NUMBER' )
11- RECIPIENT_NUMBER = os .environ .get ('RECIPIENT_NUMBER' )
12-
135app = FastAPI ()
146
157
168@app .get ('/webhooks/answer' )
179async def answer_call (request : Request ):
1810 ncco : list [NccoAction ] = [
19- Talk (text = f'Please tell me something. ' ),
11+ Talk (text = f'Please say something' ),
2012 Input (
2113 type = ['speech' ],
22- speech = Speech (
23- endOnSilence = 1 ,
24- language = 'en-US' ,
25- uuid = [request .query_params .get ('uuid' )],
26- ),
27- eventUrl = [str (request .base_url ) + '/webhooks/asr' ],
14+ speech = Speech (endOnSilence = 1 , language = 'en-US' ),
15+ eventUrl = [str (request .base_url ) + 'webhooks/asr' ],
2816 ),
2917 ]
3018
@@ -34,9 +22,10 @@ async def answer_call(request: Request):
3422@app .post ('/webhooks/asr' )
3523async def answer_asr (data : dict = Body (...)):
3624 if data is not None and 'speech' in data :
25+ pprint (data )
3726 speech = data ['speech' ]['results' ][0 ]['text' ]
3827 return [
39- Talk (text = f'Hello , you said { speech } ' ).model_dump (
28+ Talk (text = f'Hello, you said { speech } ' ).model_dump (
4029 by_alias = True , exclude_none = True
4130 )
4231 ]
0 commit comments