{"id":5912,"date":"2019-05-20T14:00:58","date_gmt":"2019-05-20T18:00:58","guid":{"rendered":"https:\/\/zux.zsm.mybluehost.me\/majoctobre2019\/?p=5912"},"modified":"2021-09-20T11:28:36","modified_gmt":"2021-09-20T15:28:36","slug":"nexmo-audio-streaming-oumph-call-recording-server-for-the-masses-article-en-anglais","status":"publish","type":"post","link":"https:\/\/www.nuecho.com\/fr\/nexmo-audio-streaming-oumph-call-recording-server-for-the-masses-article-en-anglais\/","title":{"rendered":"Nexmo et le streaming audio : un serveur d\u2019enregistrement d\u2019appel pour le grand public (Article en anglais)"},"content":{"rendered":"<h2><span style=\"font-weight: 400;\">Nexmo Voice Application<\/span><\/h2>\n<p><span style=\"font-weight: 400;\">Creating a <\/span><a target=\"_blank\" href=\"https:\/\/developer.nexmo.com\/concepts\/guides\/applications\" rel=\"noopener\"><span style=\"font-weight: 400;\">Nexmo application <\/span><\/a><span style=\"font-weight: 400;\">is not complicated, as there is not much to configure: you have to provide a phone number and two webhook URLs: one to return a <\/span><a target=\"_blank\" href=\"https:\/\/developer.nexmo.com\/voice\/voice-api\/ncco-reference\" rel=\"noopener\"><span style=\"font-weight: 400;\">Nexmo Call Control Object (NCCO)<\/span><\/a><span style=\"font-weight: 400;\"> containing instructions and one to receive event data. Similarly, using your Nexmo app is simple:<\/span><\/p>\n<ol>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">A call comes in through your application.<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">The application asks for instructions at the provided web address.<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">The application executes the instructions.<\/span><\/li>\n<\/ol>\n<p><span style=\"font-weight: 400;\">This last step is when the call actually starts. Throughout this process, the Nexmo application sends event messages to the webhook containing information on the current state of the call.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">To implement the new websocket feature only means giving the <\/span><a target=\"_blank\" href=\"https:\/\/developer.nexmo.com\/voice\/voice-api\/guides\/websockets\" rel=\"noopener\"><span style=\"font-weight: 400;\">NCCO instruction<\/span><\/a><span style=\"font-weight: 400;\"> to connect via websocket with your web server\u2019s address.<\/span><\/p>\n<p><img decoding=\"async\" class=\"aligncenter wp-image-9222 size-full lazyload\" data-src=\"https:\/\/www.nuecho.com\/wp-content\/uploads\/2019\/05\/Recording-Server-Infrastructure.jpg\" alt=\"\" width=\"948\" height=\"394\" data-srcset=\"https:\/\/www.nuecho.com\/wp-content\/uploads\/2019\/05\/Recording-Server-Infrastructure.jpg 948w, https:\/\/www.nuecho.com\/wp-content\/uploads\/2019\/05\/Recording-Server-Infrastructure-300x125.jpg 300w, https:\/\/www.nuecho.com\/wp-content\/uploads\/2019\/05\/Recording-Server-Infrastructure-768x319.jpg 768w\" data-sizes=\"(max-width: 948px) 100vw, 948px\" src=\"data:image\/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==\" style=\"--smush-placeholder-width: 948px; --smush-placeholder-aspect-ratio: 948\/394;\" \/><\/p>\n<h2><span style=\"font-weight: 400;\">Providing Instructions with Google Cloud Functions (GCF)<\/span><\/h2>\n<p><a target=\"_blank\" href=\"https:\/\/cloud.google.com\/functions\/\" rel=\"noopener\"><span style=\"font-weight: 400;\">GCF<\/span><\/a><span style=\"font-weight: 400;\"> is a platform on which we can deploy a simple <\/span><a target=\"_blank\" href=\"https:\/\/expressjs.com\/\" rel=\"noopener\"><span style=\"font-weight: 400;\">Express<\/span><\/a><span style=\"font-weight: 400;\"> application to be used as a function which is called via HTTP. Its resources are small and its runtime mustn\u2019t be long. We can easily answer Nexmo\u2019s request with the call instructions thanks to GCF. On this platform, we can deploy a simple Node.js Express app with the sole purpose of providing an instruction set by returning a JSON object to each request. Two instructions fulfill our needs:<\/span><\/p>\n<ol>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Instruct the caller to leave a message.<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Connect the call to the specified web address via a <\/span><a target=\"_blank\" href=\"https:\/\/developer.nexmo.com\/voice\/voice-api\/guides\/websockets\" rel=\"noopener\"><span style=\"font-weight: 400;\">websocket<\/span><\/a><span style=\"font-weight: 400;\">.<\/span><\/li>\n<\/ol>\n<p><span style=\"font-weight: 400;\">To instruct Nexmo on how to proceed, we must answer its request with a JSON object listing all the steps. The object must be in <\/span><a target=\"_blank\" href=\"https:\/\/developer.nexmo.com\/voice\/voice-api\/ncco-reference\" rel=\"noopener\"><span style=\"font-weight: 400;\">NCCO<\/span><\/a><span style=\"font-weight: 400;\"> format. In our example, this gives:<\/span><\/p>\n<p><img decoding=\"async\" class=\"aligncenter wp-image-9224 size-full lazyload\" data-src=\"https:\/\/www.nuecho.com\/wp-content\/uploads\/2019\/05\/1.png\" alt=\"\" width=\"998\" height=\"399\" data-srcset=\"https:\/\/www.nuecho.com\/wp-content\/uploads\/2019\/05\/1.png 998w, https:\/\/www.nuecho.com\/wp-content\/uploads\/2019\/05\/1-300x120.png 300w, https:\/\/www.nuecho.com\/wp-content\/uploads\/2019\/05\/1-768x307.png 768w\" data-sizes=\"(max-width: 998px) 100vw, 998px\" src=\"data:image\/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==\" style=\"--smush-placeholder-width: 998px; --smush-placeholder-aspect-ratio: 998\/399;\" \/><\/p>\n<p><span style=\"font-weight: 400;\">The field <\/span><i><span style=\"font-weight: 400;\">content-type <\/span><\/i><span style=\"font-weight: 400;\">specifies the audio format to be in linear PCM at 16000 Hz.<\/span><\/p>\n<h2><span style=\"font-weight: 400;\">Recording Server on Google App Engine (GAE)<\/span><\/h2>\n<p><span style=\"font-weight: 400;\">Now for the more challenging part. Since Google Cloud Functions have a short execution time limit (around 5 seconds), it can\u2019t be used to hold a connection for the length of a whole conversation. This is where <\/span><a target=\"_blank\" href=\"https:\/\/cloud.google.com\/appengine\/\" rel=\"noopener\"><span style=\"font-weight: 400;\">GAE<\/span><\/a><span style=\"font-weight: 400;\"> comes in! Applications can be deployed on this platform with the possibility of holding a connection for longer periods of time.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">To create a websocket application in Node.js, one could rely on librairies like <\/span><a target=\"_blank\" href=\"https:\/\/socket.io\/\" rel=\"noopener\"><span style=\"font-weight: 400;\">Socket.IO<\/span><\/a><span style=\"font-weight: 400;\"> or, as we did, use a combination of packages consisting of <\/span><a target=\"_blank\" href=\"https:\/\/github.com\/websockets\/ws\" rel=\"noopener\"><span style=\"font-weight: 400;\">ws<\/span><\/a><span style=\"font-weight: 400;\">, <\/span><a target=\"_blank\" href=\"https:\/\/github.com\/HenningM\/express-ws\" rel=\"noopener\"><span style=\"font-weight: 400;\">express-ws<\/span><\/a><span style=\"font-weight: 400;\"> and <\/span><a target=\"_blank\" href=\"https:\/\/github.com\/maxogden\/websocket-stream#readme\" rel=\"noopener\"><span style=\"font-weight: 400;\">websocket-stream<\/span><\/a><span style=\"font-weight: 400;\">. With these, for every connection, a <\/span><a target=\"_blank\" href=\"https:\/\/nodejs.org\/api\/stream.html#stream_class_stream_duplex\" rel=\"noopener\"><span style=\"font-weight: 400;\">duplex stream<\/span><\/a><span style=\"font-weight: 400;\"> object is created and can be piped anywhere. Our next step is to create an audio file from it.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">As specified in the NCCO, the audio data is in PCM format with a sample rate of 16000 Hz. This is valid WAV audio. Using the <\/span><a target=\"_blank\" href=\"https:\/\/github.com\/TooTallNate\/node-wav#readme\" rel=\"noopener\"><span style=\"font-weight: 400;\">wav<\/span><\/a><span style=\"font-weight: 400;\"> package, we can first wrap the PCM stream into a WAV container and then pipe the stream into a file writer, specify the audio format, define the output path and the job is done!<\/span><\/p>\n<p><img decoding=\"async\" class=\"aligncenter wp-image-9223 size-full lazyload\" data-src=\"https:\/\/www.nuecho.com\/wp-content\/uploads\/2019\/05\/2.png\" alt=\"\" width=\"803\" height=\"811\" data-srcset=\"https:\/\/www.nuecho.com\/wp-content\/uploads\/2019\/05\/2.png 803w, https:\/\/www.nuecho.com\/wp-content\/uploads\/2019\/05\/2-150x150.png 150w, https:\/\/www.nuecho.com\/wp-content\/uploads\/2019\/05\/2-297x300.png 297w, https:\/\/www.nuecho.com\/wp-content\/uploads\/2019\/05\/2-768x776.png 768w\" data-sizes=\"(max-width: 803px) 100vw, 803px\" src=\"data:image\/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==\" style=\"--smush-placeholder-width: 803px; --smush-placeholder-aspect-ratio: 803\/811;\" \/><\/p>\n<h2><span style=\"font-weight: 400;\">Saving files to Google Cloud Storage<\/span><\/h2>\n<p><span style=\"font-weight: 400;\">In GAE we can only use temporary folders for writing and reading files. This means that another resource is needed in order to store these audio files permanently. Using the Google Cloud Storage API, we are able to store files in the project\u2019s storage space. And guess what? Uploading files via the API is as simple as following the example already laid for us in Google\u2019s <\/span><a target=\"_blank\" href=\"https:\/\/cloud.google.com\/appengine\/docs\/flexible\/nodejs\/using-cloud-storage.\" rel=\"noopener\"><span style=\"font-weight: 400;\">documentation<\/span><\/a><span style=\"font-weight: 400;\">.<\/span><\/p>\n<p><img decoding=\"async\" class=\"aligncenter wp-image-9225 size-full lazyload\" data-src=\"https:\/\/www.nuecho.com\/wp-content\/uploads\/2019\/05\/3.png\" alt=\"\" width=\"989\" height=\"712\" data-srcset=\"https:\/\/www.nuecho.com\/wp-content\/uploads\/2019\/05\/3.png 989w, https:\/\/www.nuecho.com\/wp-content\/uploads\/2019\/05\/3-300x216.png 300w, https:\/\/www.nuecho.com\/wp-content\/uploads\/2019\/05\/3-768x553.png 768w\" data-sizes=\"(max-width: 989px) 100vw, 989px\" src=\"data:image\/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==\" style=\"--smush-placeholder-width: 989px; --smush-placeholder-aspect-ratio: 989\/712;\" \/><\/p>\n<p><span style=\"font-weight: 400;\">With this, we have our full recording server. A simple call will end up creating audio recordings in a Google Cloud Storage bucket in WAV format. Having successfully come up with a solution to stream audio from a live call to a web server, we can now think of any number of possible applications such as voicebots, transcribing caller speech in real-time, sentiment analysis or even passive voice biometrics. These can even be used in combination with the recording server. Voice interfaces such as this may be used everywhere in the future. The next step for this technology is to be used as one of the easiest ways of processing audio from a phone call into any kind of applications.<\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Nexmo Voice Application Creating a Nexmo application is not complicated, as there is not much to configure: you have to provide a phone number and two webhook URLs: one to return a Nexmo Call Control Object (NCCO) containing instructions and one to receive event data. Similarly, using your Nexmo app is simple: A call comes [&hellip;]<\/p>\n","protected":false},"author":14,"featured_media":3471,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_et_pb_use_builder":"off","_et_pb_old_content":"","_et_gb_content_width":"","om_disable_all_campaigns":false,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[5,39],"tags":[],"class_list":["post-5912","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blogue","category-iva-fr"],"aioseo_notices":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.9 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Nexmo et le streaming audio : un serveur d\u2019enregistrement d\u2019appel pour le grand public (Article en anglais) &#183; AI Virtual Voice Experts with Google Dialogflow CX - CCAI - Nu Echo<\/title>\n<meta name=\"description\" content=\"Does your FAQ stand for Fail to Answer Questions?\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.nuecho.com\/fr\/nexmo-audio-streaming-oumph-call-recording-server-for-the-masses-article-en-anglais\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Nexmo et le streaming audio : un serveur d\u2019enregistrement d\u2019appel pour le grand public (Article en anglais) &#183; AI Virtual Voice Experts with Google Dialogflow CX - CCAI - Nu Echo\" \/>\n<meta property=\"og:description\" content=\"Does your FAQ stand for Fail to Answer Questions?\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.nuecho.com\/fr\/nexmo-audio-streaming-oumph-call-recording-server-for-the-masses-article-en-anglais\/\" \/>\n<meta property=\"og:site_name\" content=\"AI Virtual Voice Experts with Google Dialogflow CX - CCAI - Nu Echo\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/nuechoinc\/\" \/>\n<meta property=\"article:published_time\" content=\"2019-05-20T18:00:58+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2021-09-20T15:28:36+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.nuecho.com\/wp-content\/uploads\/2019\/05\/communication-contact-conversation-33999-scaled.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"2560\" \/>\n\t<meta property=\"og:image:height\" content=\"1707\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Jeremy Parent\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@nuecho\" \/>\n<meta name=\"twitter:site\" content=\"@nuecho\" \/>\n<meta name=\"twitter:label1\" content=\"\u00c9crit par\" \/>\n\t<meta name=\"twitter:data1\" content=\"Jeremy Parent\" \/>\n\t<meta name=\"twitter:label2\" content=\"Dur\u00e9e de lecture estim\u00e9e\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.nuecho.com\/fr\/nexmo-audio-streaming-oumph-call-recording-server-for-the-masses-article-en-anglais\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.nuecho.com\/fr\/nexmo-audio-streaming-oumph-call-recording-server-for-the-masses-article-en-anglais\/\"},\"author\":{\"name\":\"Jeremy Parent\",\"@id\":\"https:\/\/www.nuecho.com\/fr\/#\/schema\/person\/7300535905aa79351b2375a301389a08\"},\"headline\":\"Nexmo et le streaming audio : un serveur d\u2019enregistrement d\u2019appel pour le grand public (Article en anglais)\",\"datePublished\":\"2019-05-20T18:00:58+00:00\",\"dateModified\":\"2021-09-20T15:28:36+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.nuecho.com\/fr\/nexmo-audio-streaming-oumph-call-recording-server-for-the-masses-article-en-anglais\/\"},\"wordCount\":677,\"publisher\":{\"@id\":\"https:\/\/www.nuecho.com\/fr\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.nuecho.com\/fr\/nexmo-audio-streaming-oumph-call-recording-server-for-the-masses-article-en-anglais\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.nuecho.com\/wp-content\/uploads\/2019\/05\/communication-contact-conversation-33999-scaled.jpg\",\"articleSection\":[\"Blogue\",\"IVA\"],\"inLanguage\":\"fr-FR\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.nuecho.com\/fr\/nexmo-audio-streaming-oumph-call-recording-server-for-the-masses-article-en-anglais\/\",\"url\":\"https:\/\/www.nuecho.com\/fr\/nexmo-audio-streaming-oumph-call-recording-server-for-the-masses-article-en-anglais\/\",\"name\":\"Nexmo et le streaming audio : un serveur d\u2019enregistrement d\u2019appel pour le grand public (Article en anglais) &#183; AI Virtual Voice Experts with Google Dialogflow CX - CCAI - Nu Echo\",\"isPartOf\":{\"@id\":\"https:\/\/www.nuecho.com\/fr\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.nuecho.com\/fr\/nexmo-audio-streaming-oumph-call-recording-server-for-the-masses-article-en-anglais\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.nuecho.com\/fr\/nexmo-audio-streaming-oumph-call-recording-server-for-the-masses-article-en-anglais\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.nuecho.com\/wp-content\/uploads\/2019\/05\/communication-contact-conversation-33999-scaled.jpg\",\"datePublished\":\"2019-05-20T18:00:58+00:00\",\"dateModified\":\"2021-09-20T15:28:36+00:00\",\"description\":\"Does your FAQ stand for Fail to Answer Questions?\",\"breadcrumb\":{\"@id\":\"https:\/\/www.nuecho.com\/fr\/nexmo-audio-streaming-oumph-call-recording-server-for-the-masses-article-en-anglais\/#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.nuecho.com\/fr\/nexmo-audio-streaming-oumph-call-recording-server-for-the-masses-article-en-anglais\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\/\/www.nuecho.com\/fr\/nexmo-audio-streaming-oumph-call-recording-server-for-the-masses-article-en-anglais\/#primaryimage\",\"url\":\"https:\/\/www.nuecho.com\/wp-content\/uploads\/2019\/05\/communication-contact-conversation-33999-scaled.jpg\",\"contentUrl\":\"https:\/\/www.nuecho.com\/wp-content\/uploads\/2019\/05\/communication-contact-conversation-33999-scaled.jpg\",\"width\":2560,\"height\":1707,\"caption\":\"Phone application\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.nuecho.com\/fr\/nexmo-audio-streaming-oumph-call-recording-server-for-the-masses-article-en-anglais\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.nuecho.com\/fr\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Nexmo et le streaming audio : un serveur d\u2019enregistrement d\u2019appel pour le grand public (Article en anglais)\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.nuecho.com\/fr\/#website\",\"url\":\"https:\/\/www.nuecho.com\/fr\/\",\"name\":\"AI Virtual Voice Experts with Google Dialogflow CX - CCAI - Nu Echo\",\"description\":\"Nu Echo\",\"publisher\":{\"@id\":\"https:\/\/www.nuecho.com\/fr\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.nuecho.com\/fr\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"fr-FR\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.nuecho.com\/fr\/#organization\",\"name\":\"Nu Echo - Conversation AI | IA Conversationnelle\",\"url\":\"https:\/\/www.nuecho.com\/fr\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\/\/www.nuecho.com\/fr\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.nuecho.com\/wp-content\/uploads\/2019\/03\/bottom-logo.png\",\"contentUrl\":\"https:\/\/www.nuecho.com\/wp-content\/uploads\/2019\/03\/bottom-logo.png\",\"width\":138,\"height\":27,\"caption\":\"Nu Echo - Conversation AI | IA Conversationnelle\"},\"image\":{\"@id\":\"https:\/\/www.nuecho.com\/fr\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/nuechoinc\/\",\"https:\/\/x.com\/nuecho\",\"https:\/\/ca.linkedin.com\/company\/nu-echo\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.nuecho.com\/fr\/#\/schema\/person\/7300535905aa79351b2375a301389a08\",\"name\":\"Jeremy Parent\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\/\/www.nuecho.com\/fr\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/dc2d6e4e0109b3affe467245f2fda895d92ab60c20a837585b4cbdc399743ffe?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/dc2d6e4e0109b3affe467245f2fda895d92ab60c20a837585b4cbdc399743ffe?s=96&d=mm&r=g\",\"caption\":\"Jeremy Parent\"},\"url\":\"https:\/\/www.nuecho.com\/fr\/author\/jparent\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Nexmo et le streaming audio : un serveur d\u2019enregistrement d\u2019appel pour le grand public (Article en anglais) &#183; AI Virtual Voice Experts with Google Dialogflow CX - CCAI - Nu Echo","description":"Does your FAQ stand for Fail to Answer Questions?","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.nuecho.com\/fr\/nexmo-audio-streaming-oumph-call-recording-server-for-the-masses-article-en-anglais\/","og_locale":"fr_FR","og_type":"article","og_title":"Nexmo et le streaming audio : un serveur d\u2019enregistrement d\u2019appel pour le grand public (Article en anglais) &#183; AI Virtual Voice Experts with Google Dialogflow CX - CCAI - Nu Echo","og_description":"Does your FAQ stand for Fail to Answer Questions?","og_url":"https:\/\/www.nuecho.com\/fr\/nexmo-audio-streaming-oumph-call-recording-server-for-the-masses-article-en-anglais\/","og_site_name":"AI Virtual Voice Experts with Google Dialogflow CX - CCAI - Nu Echo","article_publisher":"https:\/\/www.facebook.com\/nuechoinc\/","article_published_time":"2019-05-20T18:00:58+00:00","article_modified_time":"2021-09-20T15:28:36+00:00","og_image":[{"width":2560,"height":1707,"url":"https:\/\/www.nuecho.com\/wp-content\/uploads\/2019\/05\/communication-contact-conversation-33999-scaled.jpg","type":"image\/jpeg"}],"author":"Jeremy Parent","twitter_card":"summary_large_image","twitter_creator":"@nuecho","twitter_site":"@nuecho","twitter_misc":{"\u00c9crit par":"Jeremy Parent","Dur\u00e9e de lecture estim\u00e9e":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.nuecho.com\/fr\/nexmo-audio-streaming-oumph-call-recording-server-for-the-masses-article-en-anglais\/#article","isPartOf":{"@id":"https:\/\/www.nuecho.com\/fr\/nexmo-audio-streaming-oumph-call-recording-server-for-the-masses-article-en-anglais\/"},"author":{"name":"Jeremy Parent","@id":"https:\/\/www.nuecho.com\/fr\/#\/schema\/person\/7300535905aa79351b2375a301389a08"},"headline":"Nexmo et le streaming audio : un serveur d\u2019enregistrement d\u2019appel pour le grand public (Article en anglais)","datePublished":"2019-05-20T18:00:58+00:00","dateModified":"2021-09-20T15:28:36+00:00","mainEntityOfPage":{"@id":"https:\/\/www.nuecho.com\/fr\/nexmo-audio-streaming-oumph-call-recording-server-for-the-masses-article-en-anglais\/"},"wordCount":677,"publisher":{"@id":"https:\/\/www.nuecho.com\/fr\/#organization"},"image":{"@id":"https:\/\/www.nuecho.com\/fr\/nexmo-audio-streaming-oumph-call-recording-server-for-the-masses-article-en-anglais\/#primaryimage"},"thumbnailUrl":"https:\/\/www.nuecho.com\/wp-content\/uploads\/2019\/05\/communication-contact-conversation-33999-scaled.jpg","articleSection":["Blogue","IVA"],"inLanguage":"fr-FR"},{"@type":"WebPage","@id":"https:\/\/www.nuecho.com\/fr\/nexmo-audio-streaming-oumph-call-recording-server-for-the-masses-article-en-anglais\/","url":"https:\/\/www.nuecho.com\/fr\/nexmo-audio-streaming-oumph-call-recording-server-for-the-masses-article-en-anglais\/","name":"Nexmo et le streaming audio : un serveur d\u2019enregistrement d\u2019appel pour le grand public (Article en anglais) &#183; AI Virtual Voice Experts with Google Dialogflow CX - CCAI - Nu Echo","isPartOf":{"@id":"https:\/\/www.nuecho.com\/fr\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.nuecho.com\/fr\/nexmo-audio-streaming-oumph-call-recording-server-for-the-masses-article-en-anglais\/#primaryimage"},"image":{"@id":"https:\/\/www.nuecho.com\/fr\/nexmo-audio-streaming-oumph-call-recording-server-for-the-masses-article-en-anglais\/#primaryimage"},"thumbnailUrl":"https:\/\/www.nuecho.com\/wp-content\/uploads\/2019\/05\/communication-contact-conversation-33999-scaled.jpg","datePublished":"2019-05-20T18:00:58+00:00","dateModified":"2021-09-20T15:28:36+00:00","description":"Does your FAQ stand for Fail to Answer Questions?","breadcrumb":{"@id":"https:\/\/www.nuecho.com\/fr\/nexmo-audio-streaming-oumph-call-recording-server-for-the-masses-article-en-anglais\/#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.nuecho.com\/fr\/nexmo-audio-streaming-oumph-call-recording-server-for-the-masses-article-en-anglais\/"]}]},{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/www.nuecho.com\/fr\/nexmo-audio-streaming-oumph-call-recording-server-for-the-masses-article-en-anglais\/#primaryimage","url":"https:\/\/www.nuecho.com\/wp-content\/uploads\/2019\/05\/communication-contact-conversation-33999-scaled.jpg","contentUrl":"https:\/\/www.nuecho.com\/wp-content\/uploads\/2019\/05\/communication-contact-conversation-33999-scaled.jpg","width":2560,"height":1707,"caption":"Phone application"},{"@type":"BreadcrumbList","@id":"https:\/\/www.nuecho.com\/fr\/nexmo-audio-streaming-oumph-call-recording-server-for-the-masses-article-en-anglais\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.nuecho.com\/fr\/"},{"@type":"ListItem","position":2,"name":"Nexmo et le streaming audio : un serveur d\u2019enregistrement d\u2019appel pour le grand public (Article en anglais)"}]},{"@type":"WebSite","@id":"https:\/\/www.nuecho.com\/fr\/#website","url":"https:\/\/www.nuecho.com\/fr\/","name":"AI Virtual Voice Experts with Google Dialogflow CX - CCAI - Nu Echo","description":"Nu Echo","publisher":{"@id":"https:\/\/www.nuecho.com\/fr\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.nuecho.com\/fr\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"fr-FR"},{"@type":"Organization","@id":"https:\/\/www.nuecho.com\/fr\/#organization","name":"Nu Echo - Conversation AI | IA Conversationnelle","url":"https:\/\/www.nuecho.com\/fr\/","logo":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/www.nuecho.com\/fr\/#\/schema\/logo\/image\/","url":"https:\/\/www.nuecho.com\/wp-content\/uploads\/2019\/03\/bottom-logo.png","contentUrl":"https:\/\/www.nuecho.com\/wp-content\/uploads\/2019\/03\/bottom-logo.png","width":138,"height":27,"caption":"Nu Echo - Conversation AI | IA Conversationnelle"},"image":{"@id":"https:\/\/www.nuecho.com\/fr\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/nuechoinc\/","https:\/\/x.com\/nuecho","https:\/\/ca.linkedin.com\/company\/nu-echo"]},{"@type":"Person","@id":"https:\/\/www.nuecho.com\/fr\/#\/schema\/person\/7300535905aa79351b2375a301389a08","name":"Jeremy Parent","image":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/www.nuecho.com\/fr\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/dc2d6e4e0109b3affe467245f2fda895d92ab60c20a837585b4cbdc399743ffe?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/dc2d6e4e0109b3affe467245f2fda895d92ab60c20a837585b4cbdc399743ffe?s=96&d=mm&r=g","caption":"Jeremy Parent"},"url":"https:\/\/www.nuecho.com\/fr\/author\/jparent\/"}]}},"_links":{"self":[{"href":"https:\/\/www.nuecho.com\/fr\/wp-json\/wp\/v2\/posts\/5912","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.nuecho.com\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.nuecho.com\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.nuecho.com\/fr\/wp-json\/wp\/v2\/users\/14"}],"replies":[{"embeddable":true,"href":"https:\/\/www.nuecho.com\/fr\/wp-json\/wp\/v2\/comments?post=5912"}],"version-history":[{"count":8,"href":"https:\/\/www.nuecho.com\/fr\/wp-json\/wp\/v2\/posts\/5912\/revisions"}],"predecessor-version":[{"id":8980,"href":"https:\/\/www.nuecho.com\/fr\/wp-json\/wp\/v2\/posts\/5912\/revisions\/8980"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.nuecho.com\/fr\/wp-json\/wp\/v2\/media\/3471"}],"wp:attachment":[{"href":"https:\/\/www.nuecho.com\/fr\/wp-json\/wp\/v2\/media?parent=5912"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.nuecho.com\/fr\/wp-json\/wp\/v2\/categories?post=5912"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.nuecho.com\/fr\/wp-json\/wp\/v2\/tags?post=5912"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}