Tìm kiếm hệ thống nhận dạng giọng nói âm thanh tối ưu với mã nguồn đóng nhưng có API mở để tích hợp. Sử dụng Google Cloud Speech API v2 trong Asterisk để nhận dạng giọng nói tiếng Nga

Nếu bạn gõ bàn phím quá chậm và học phương pháp mười ngón lười gõ quá, bạn có thể thử dùng chương trình hiện đại và dịch vụ nhập văn bản bằng giọng nói.

Bàn phím chắc chắn là đủ công cụ tiện dụngđiều khiển máy tính. Tuy nhiên, khi gõ Văn bản dài, chúng tôi hiểu tất cả những điểm không hoàn hảo của nó (và thành thật mà nói là của chúng tôi :))... Bạn cũng cần có khả năng gõ nhanh vào nó!

Cách đây vài năm, vì muốn đơn giản hóa công việc viết bài của mình, tôi quyết định tìm một chương trình cho phép tôi chuyển giọng nói thành văn bản. Tôi nghĩ sẽ tuyệt biết bao nếu tôi chỉ cần nói tất cả những gì tôi cần vào micro và máy tính sẽ gõ cho tôi :)

Hãy tưởng tượng sự thất vọng của tôi khi nhận ra rằng vào thời điểm đó không có giải pháp nào thực sự hiệu quả (chứ đừng nói là miễn phí) cho vấn đề này. Tuy nhiên, đã có những sự phát triển trong nước, như “Gorynych” và “Dictograph”. Họ hiểu tiếng Nga, nhưng than ôi, chất lượng nhận dạng giọng nói khá thấp và cần thiết thiết lập lâu với việc tạo ra một cuốn từ điển theo giọng nói của chính bạn, và nó cũng khá tốn kém...

Sau đó, Android ra đời và tình hình đã tiến xa hơn một chút so với điểm chết. Trong hệ thống này, đầu vào bằng giọng nói xuất hiện dưới dạng một giải pháp thay thế tích hợp (và khá tiện lợi) cho đầu vào ảo. bàn phím trên màn hình. Và gần đây, trong một bình luận, tôi đã được hỏi liệu có tùy chọn nhập giọng nói cho Windows không? Tôi chưa trả lời điều đó, nhưng tôi quyết định xem xét và hóa ra, có thể không hoàn toàn chính thức, nhưng cơ hội như vậy vẫn tồn tại! Bài viết hôm nay sẽ nói về kết quả nghiên cứu của tôi.

Vấn đề nhận dạng giọng nói

Trước khi chúng ta bắt đầu phân tích các giải pháp hiện tại cho việc nhập giọng nói trong Windows, tôi muốn làm sáng tỏ bản chất của vấn đề nhận dạng giọng nói của máy tính. Để hiểu chính xác hơn về quy trình, tôi khuyên bạn nên xem sơ đồ sau:

Như bạn có thể thấy, việc chuyển lời nói thành văn bản xảy ra theo một số giai đoạn:

  1. Số hóa giọng nói. Ở giai đoạn này, chất lượng phụ thuộc vào độ rõ ràng của cách phát âm, chất lượng của micrô và card âm thanh.
  2. So sánh một mục với các mục trong từ điển. Nguyên tắc “càng nhiều càng tốt” được áp dụng ở đây: từ điển càng chứa nhiều từ được ghi lại thì khả năng từ của bạn được nhận dạng chính xác càng cao.
  3. Đầu ra văn bản. Hệ thống tự động, dựa trên các lần tạm dừng, cố gắng xác định các từ vựng riêng lẻ từ luồng giọng nói tương ứng với các từ vựng mẫu từ từ điển, sau đó hiển thị các kết quả khớp được tìm thấy dưới dạng văn bản.

Vấn đề chính, như bạn có thể đoán, nằm ở hai sắc thái chính: chất lượng của đoạn giọng nói được số hóa và khối lượng từ điển với các mẫu. Vấn đề đầu tiên có thể được giảm thiểu một cách thực tế ngay cả khi có micro giá rẻ và một card âm thanh tiêu chuẩn. Chỉ cần nói chậm và rõ ràng là đủ.

Với vấn đề thứ hai, than ôi, không phải mọi thứ đều đơn giản như vậy... Máy tính, không giống như con người, không thể nhận dạng chính xác cùng một cụm từ được nói bởi một người phụ nữ và một người đàn ông. Để làm được điều này, cả hai phiên bản lồng tiếng với các giọng nói khác nhau phải tồn tại trong cơ sở dữ liệu của nó!

Đây là nơi đánh bắt chính. Về nguyên tắc, việc tạo một cuốn từ điển cho một người không quá khó, tuy nhiên, vì mỗi từ phải được viết thành nhiều phiên bản nên việc này rất dài và tốn nhiều công sức. Do đó, hầu hết các chương trình nhận dạng giọng nói hiện nay đều quá đắt hoặc không có từ điển riêng, khiến người dùng phải tự tạo chúng.

Không phải vô cớ mà tôi đã đề cập đến Android cao hơn một chút. Thực tế là Google, công ty đang phát triển nó, cũng đã tạo ra từ điển trực tuyến toàn cầu duy nhất hiện có để nhận dạng giọng nói (và đa ngôn ngữ!) có tên là API giọng nói của Google. Yandex cũng đang tạo một từ điển tương tự cho tiếng Nga, nhưng than ôi, cho đến nay nó vẫn không phù hợp để sử dụng trong điều kiện thực tế. Vì thế, hầu như mọi thứ giải pháp miễn phí, mà chúng ta sẽ xem xét bên dưới, hoạt động cụ thể với các từ điển của Google. Theo đó, chúng đều có chất lượng nhận dạng như nhau và sắc thái chỉ nằm ở khả năng bổ sung...

Chương trình nhập liệu bằng giọng nói

Không có nhiều chương trình nhập liệu bằng giọng nói đầy đủ cho Windows. Và những người tồn tại và hiểu được tiếng Nga hầu hết đều phải trả phí... Ví dụ, chi phí của một ngôn ngữ phổ biến hệ thống người dùng Chuyển đổi giọng nói thành văn bản RealSpeaker bắt đầu ở mức 2.587 rúp và tổ hợp Caesar-R chuyên nghiệp bắt đầu ở mức 35.900 rúp!

Nhưng trong số tất cả những phần mềm đắt tiền này, có một chương trình không tốn một xu nhưng đồng thời cung cấp chức năng quá đủ cho hầu hết người dùng. Nó được gọi là MSpeech:

Cửa sổ chương trình chính có giao diện đơn giản nhất có thể - chỉ báo mức âm thanh và chỉ có ba nút: bắt đầu ghi, dừng ghi và mở cửa sổ cài đặt. MSpeech cũng hoạt động khá đơn giản. Bạn cần nhấn nút ghi, đặt con trỏ vào cửa sổ nơi văn bản sẽ được hiển thị và bắt đầu đọc chính tả. Để thuận tiện hơn, tốt hơn hết bạn nên ghi và dừng nó bằng phím nóng, có thể đặt trong Cài đặt:

Ngoài phím nóng, bạn có thể cần thay đổi kiểu truyền văn bản sang windows chương trình cần thiết. Đầu ra mặc định được đặt thành cửa sổ đang hoạt động, tuy nhiên, bạn có thể chỉ định chuyển sang các trường không hoạt động hoặc đến các trường của một chương trình cụ thể. Từ Tính năng bổ sungĐiều đáng chú ý là nhóm cài đặt “Lệnh”, cho phép bạn thực hiện điều khiển giọng nói máy tính bằng cách sử dụng các cụm từ bạn chỉ định.

Nhìn chung, MSpeech khá chương trình tiện lợi, cho phép bạn nhập văn bản bằng giọng nói ở bất kỳ cửa sổ Windows. Lưu ý duy nhất khi sử dụng là máy tính phải kết nối Internet mới có thể truy cập từ điển Google.

Nhập liệu bằng giọng nói trực tuyến

Nếu bạn không muốn cài đặt bất kỳ chương trình nào trên máy tính của mình nhưng muốn thử nhập văn bản bằng giọng nói, bạn có thể sử dụng một trong nhiều dịch vụ trực tuyến hoạt động trên cùng một từ điển Google.

Tất nhiên, điều đầu tiên đáng nói đến là dịch vụ “bản địa” của Google có tên là Web Speech API:

Dịch vụ này cho phép bạn dịch không giới hạn các phần lời nói thành văn bản bằng hơn 50 ngôn ngữ! Bạn chỉ cần chọn ngôn ngữ mình nói, nhấn vào biểu tượng micro bên phải góc trên cùng biểu mẫu, nếu cần, hãy xác nhận quyền để trang web truy cập micrô và bắt đầu nói.

Nếu bạn không sử dụng bất kỳ thuật ngữ chuyên môn cao nào và nói rõ ràng, bạn có thể nhận được một kết quả rất tốt. Ngoài từ ngữ, dịch vụ còn “hiểu” dấu câu: nếu bạn nói “dấu chấm” hoặc “dấu phẩy”, ký hiệu bắt buộc sẽ xuất hiện ở dạng đầu ra.

Khi quá trình ghi hoàn tất, văn bản được nhận dạng sẽ tự động được đánh dấu và bạn có thể sao chép nó vào khay nhớ tạm hoặc gửi qua thư.

Trong số những thiếu sót, điều đáng chú ý là dịch vụ này chỉ có thể hoạt động trên trình duyệt Google Chrome cũ hơn phiên bản 25, cũng như thiếu khả năng nhận dạng đa ngôn ngữ.

Nhân tiện, trên trang web của chúng tôi ở trên cùng, bạn sẽ tìm thấy một phiên bản hoàn toàn bằng tiếng Nga của cùng một hình thức nhận dạng giọng nói. Hãy tận hưởng nó vì sức khỏe của bạn ;)

Có khá nhiều tài nguyên nhận dạng giọng nói trực tuyến tương tự dựa trên dịch vụ của Google. Một trong những trang web được chúng tôi quan tâm là Dictation.io:

Không giống như Web API lời nói, Dictation.io có nhiều hơn thế Thiết kế thời trang dưới dạng một cuốn sổ ghi chú. Ưu điểm chính của nó so với dịch vụ của Google là cho phép bạn dừng ghi rồi bắt đầu lại và văn bản đã nhập trước đó sẽ được lưu cho đến khi bạn nhấn nút "Xóa".

Giống dịch vụ của Google Dictation.io “biết cách” đặt dấu chấm, dấu phẩy và cả Dấu chấm than và dấu hỏi, nhưng không phải lúc nào cũng bắt đầu câu mới bằng chữ in hoa.

Nếu bạn đang tìm kiếm một dịch vụ có chức năng tối đa thì có lẽ một trong những dịch vụ tốt nhất về mặt này sẽ là:

Ưu điểm chính của dịch vụ:

  • sự sẵn có của giao diện tiếng Nga;
  • khả năng xem và chọn các tùy chọn nhận dạng;
  • sự hiện diện của lời nhắc bằng giọng nói;
  • tự động tắt ghi âm sau một thời gian dài tạm dừng;
  • được xây dựng trong soạn thảo văn bản với các chức năng sao chép văn bản vào khay nhớ tạm, in trên máy in, gửi qua thư hoặc Twitter và dịch nó sang các ngôn ngữ khác.

Hạn chế duy nhất của dịch vụ (ngoài những nhược điểm chung đã được mô tả) Bài phát biểu trên web API) là một thuật toán vận hành không mấy quen thuộc đối với các dịch vụ như vậy. Sau khi nhấn nút ghi và đọc chính tả văn bản, bạn cần kiểm tra, chọn phương án phù hợp nhất với điều bạn muốn nói rồi chuyển sang trình soạn thảo văn bản bên dưới. Sau đó thủ tục có thể được lặp lại.

Plugin dành cho Chrome

Ngoài các chương trình chính thức và dịch vụ trực tuyến, còn có một cách khác để nhận dạng giọng nói thành văn bản. Phương pháp này được thực hiện bằng cách sử dụng plugin trình duyệt Google Chrome.

Ưu điểm chính của việc sử dụng plugin là với sự trợ giúp của chúng, bạn có thể nhập văn bản bằng giọng nói không chỉ trong hình thức đặc biệt trên trang web dịch vụ mà còn trong bất kỳ trường nhập liệu nào trên bất kỳ tài nguyên web nào! Trên thực tế, các plugin chiếm một vị trí trung gian giữa các dịch vụ và các chương trình đầy đủđể nhập bằng giọng nói.

Một trong tiện ích mở rộng tốt nhấtđể dịch lời nói thành văn bản là SpeechPad:

Tôi sẽ không nói dối nếu nói rằng SpeechPad là một trong những ứng dụng hay nhất dịch vụ tiếng Nga dịch lời nói thành văn bản. Trên trang web chính thức, bạn sẽ tìm thấy một notepad trực tuyến khá mạnh mẽ (mặc dù có thiết kế hơi cũ) với nhiều chức năng nâng cao, bao gồm:

  • ủng hộ khẩu lệnhđiều khiển máy tính;
  • cải thiện hỗ trợ dấu câu;
  • chức năng tắt âm thanh trên PC;
  • tích hợp với Windows (mặc dù trên cơ sở trả phí);
  • khả năng nhận dạng văn bản từ bản ghi video hoặc âm thanh (chức năng "Phiên âm");
  • dịch văn bản được công nhận sang bất kỳ ngôn ngữ nào;
  • lưu văn bản vào tập tin văn bản, Có sẵn để tải xuống.

Đối với plugin, nó cung cấp cho chúng tôi chức năng dịch vụ đơn giản nhất. Đặt con trỏ vào trường nhập bạn cần, gọi danh mục và nhấp vào mục "SpeechPad". Bây giờ hãy xác nhận quyền truy cập vào micrô và khi trường nhập chuyển sang màu hồng, hãy đọc chính tả văn bản mong muốn.

Sau khi bạn ngừng nói (tạm dừng hơn 2 giây), plugin sẽ ngừng ghi và hiển thị mọi thứ bạn nói trong trường. Nếu muốn, bạn có thể vào cài đặt plugin (nhấp chuột phải vào biểu tượng plugin ở trên cùng) và thay đổi các tham số mặc định:

Thật kỳ lạ, trong toàn bộ cửa hàng trực tuyến tiện ích mở rộng của Google, tôi chưa tìm thấy một plugin đáng giá nào cho phép nhập bằng giọng nói vào bất kỳ trường văn bản nào. Phần mở rộng tương tự duy nhất là phần mở rộng tiếng Anh. Nó thêm biểu tượng micrô vào tất cả các trường nhập trên trang web, nhưng không phải lúc nào nó cũng định vị chính xác, vì vậy nó có thể tắt màn hình...

  • dấu hoa thị,
  • API của Google,
  • API Yandex
  • Chọn API nhận dạng giọng nói

    Tôi chỉ xem xét tùy chọn API; các giải pháp đóng gói là không cần thiết vì chúng yêu cầu tài nguyên, dữ liệu nhận dạng không quan trọng đối với doanh nghiệp và việc sử dụng chúng phức tạp hơn nhiều và đòi hỏi nhiều giờ công hơn.

    Đầu tiên là Yandex SpeechKit Cloud. Tôi ngay lập tức thích nó vì tính dễ sử dụng của nó:

    Curl -X POST -H "Content-Type: audio/x-wav" --data-binary "@speech.wav" "https://asr.yandex.net/asr_xml?uuid=<идентификатор пользователя>&phím= &topic=truy vấn"
    Chính sách giá: 400 rúp trên 1000 yêu cầu. Tháng đầu tiên miễn phí. Nhưng sau đó chỉ có sự thất vọng:

    Khi truyền tải một đề xuất lớn, nhận được phản hồi 2-3 từ
    - Những từ này được nhận ra theo một trình tự kỳ lạ
    - Nỗ lực thay đổi chủ đề không mang lại kết quả tích cực

    Có lẽ điều này là do chất lượng ghi âm ở mức trung bình; chúng tôi đã thử nghiệm mọi thứ thông qua cổng thoại và điện thoại Panasonic cổ. Hiện tại, tôi dự định sẽ sử dụng nó trong tương lai để xây dựng IVR.

    Tiếp theo là dịch vụ của Google. Internet có rất nhiều bài viết đề xuất sử dụng API dành cho nhà phát triển Chrome. Giờ đây, không thể lấy được khóa cho API này một cách dễ dàng như vậy. Vì vậy, chúng tôi sẽ sử dụng một nền tảng thương mại.

    Chính sách giá - 0-60 phút mỗi tháng miễn phí. Tiếp theo, 0,006 USD cho mỗi 15 giây phát biểu. Mỗi yêu cầu được làm tròn thành bội số của 15. Hai tháng đầu miễn phí, cần có thẻ tín dụng để tạo dự án. Các trường hợp sử dụng API trong tài liệu cơ bản rất đa dạng. Chúng tôi sẽ sử dụng tập lệnh Python:

    Kịch bản từ tài liệu

    """Ứng dụng mẫu API Google Cloud Speech sử dụng API REST để xử lý hàng loạt.""" import argparse import base64 import json from googleapiclient import detect import httplib2 from oauth2client.client import GoogleCredentials DISCOVERY_URL = ("https://(api). googleapis.com/$discovery/rest?" "version=(apiVersion)") def get_speech_service(): thông tin xác thực = GoogleCredentials.get_application_default().create_scoped(["https://www.googleapis.com/auth/cloud-platform "]) http = httplib2.Http() thông tin đăng nhập.authorize(http) return Discovery.build("speech", "v1beta1", http=http, DiscoveryServiceUrl=DISCOVERY_URL) def main(speech_file): """Phiên âm âm thanh đã cho file. Args: speech_file: tên của tệp âm thanh """ với open(speech_file, "rb") dưới dạng lời nói: speech_content = base64.b64encode(speech.read()) service = get_speech_service() service_request = service.speech ().syncrecognize(body=( "config": ( "encoding": "LINEAR16", # mẫu LE có chữ ký 16-bit thô "sampleRate": 16000, # 16 khz "linguCode": "en-US", # a Thẻ ngôn ngữ BCP-47 ), "audio": ("content": speech_content.decode("UTF-8") ) )) reply = service_request.execute() print(json.dumps(response)) if __name__ == " __main__": parser = argparse.ArgumentParser() parser.add_argument("speech_file", help="Đường dẫn đầy đủ của tệp âm thanh được nhận dạng") args = parser.parse_args() main(args.speech_file)

    Chuẩn bị sử dụng API Google Cloud Speech

    Chúng tôi sẽ cần đăng ký dự án và tạo khóa tài khoản dịch vụ để ủy quyền. Đây là link để dùng thử, bạn cần có tài khoản Google. Sau khi đăng ký, bạn cần kích hoạt API và tạo khóa ủy quyền. Sau đó, bạn cần sao chép khóa vào máy chủ.

    Hãy chuyển sang phần thiết lập máy chủ, chúng ta sẽ cần:

    Python
    - trăn-pip
    - con trăn API Google khách hàng

    Sudo apt-get install -y python python-pip pip install --upgrade google-api-python-client
    Bây giờ chúng ta cần xuất hai biến môi trường để hoạt động thành công với API. Đầu tiên là đường dẫn đến khóa dịch vụ, thứ hai là tên dự án của bạn.

    Xuất GOOGLE_APPLICATION_CREDENTIALS=/path/to/service_account_file.json xuất GCLOUD_PROJECT=your-project-id
    Hãy tải xuống tệp âm thanh thử nghiệm và thử chạy tập lệnh:

    Wget https://cloud.google.com/speech/docs/samples/audio.raw python voice.py audio.raw ("kết quả": [("các lựa chọn thay thế": [("độ tin cậy": 0.98267895, "bảng điểm": "Cầu Brooklyn bao nhiêu tuổi")])])
    Tuyệt vời! Thử nghiệm đầu tiên thành công. Bây giờ hãy thay đổi ngôn ngữ nhận dạng văn bản trong tập lệnh và thử nhận dạng nó:

    Nano voice.py service_request = service.speech().syncrecognize(body=( "config": ("encoding": "LINEAR16", # mẫu LE có chữ ký 16 bit thô "sampleRate": 16000, # 16 khz "ngôn ngữCode" : "ru-RU", # thẻ ngôn ngữ BCP-47
    Chúng tôi cần một tệp âm thanh .raw. Chúng tôi sử dụng sox cho việc này

    Apt-get install -y sox sox test.wav -r 16000 -b 16 -c 1 test.raw python voice.py test.raw ("kết quả": [("các lựa chọn thay thế": [("độ tin cậy": 0.96161985, " bảng điểm": "\u0417\u0434\u0440\u0430\u0432\u0441\u0442\u0432\u0443\u0439\u0442\u0435 \u0412\u0430\u0441 \u043f\u0440\u0438\u0432\u0 35\u0442\u0441\ u0442 \u0432\u0443\u0435\u0442 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u044f")])])
    Google trả lại câu trả lời cho chúng tôi bằng Unicode. Nhưng chúng tôi muốn thấy những chữ cái bình thường. Hãy thay đổi giọng nói của chúng ta một chút:

    In(json.dumps(phản hồi))
    Chúng tôi sẽ sử dụng

    S = simplejson.dumps(("var": reply), Ensure_ascii=False) print s
    Hãy thêm vào nhập khẩu đơn giản. Kịch bản cuối cùng ở bên dưới phần cắt:

    Voice.py

    """Ứng dụng mẫu API Google Cloud Speech sử dụng API REST để xử lý hàng loạt.""" import argparse import base64 import json import simplejson from googleapiclient import detect import httplib2 from oauth2client.client import GoogleCredentials DISCOVERY_URL = ("https://(api ).googleapis.com/$discovery/rest?" "version=(apiVersion)") def get_speech_service(): thông tin xác thực = GoogleCredentials.get_application_default().create_scoped(["https://www.googleapis.com/auth/cloud -platform"]) http = httplib2.Http() thông tin đăng nhập.authorize(http) return Discovery.build("speech", "v1beta1", http=http, DiscoveryServiceUrl=DISCOVERY_URL) def main(speech_file): """Phiên âm tệp âm thanh đã cho. Args: speech_file: tên của tệp âm thanh. """ với open(speech_file, "rb") dưới dạng lời nói: speech_content = base64.b64encode(speech.read()) service = get_speech_service() service_request = service .speech().syncrecognize(body=( "config": ( "encoding": "LINEAR16", # mẫu LE có chữ ký 16-bit thô "sampleRate": 16000, # 16 khz "linguCode": "en-US", # thẻ ngôn ngữ BCP-47 ), "audio": ("content": speech_content.decode("UTF-8") ) )) reply = service_request.execute() s = simplejson.dumps(("var": reply ), Ensure_ascii=False) print s if __name__ == "__main__": parser = argparse.ArgumentParser() parser.add_argument("speech_file", help="Đường dẫn đầy đủ của tệp âm thanh cần được nhận dạng") args = parser.parse_args( ) chính(args.speech_file)


    Nhưng trước khi chạy nó, bạn sẽ cần xuất thêm một biến môi trường xuất PYTHONIOENCODING=UTF-8. Không có nó, tôi gặp vấn đề với thiết bị xuất chuẩn khi được gọi trong tập lệnh.

    Xuất PYTHONIOENCODING=UTF-8 python voice.py test.raw ("var": ("kết quả": [("lựa chọn thay thế": [("sự tự tin": 0.96161985, "transcript": "Xin chào, chào mừng đến với công ty") ]) ]))
    Tuyệt vời. Bây giờ chúng ta có thể gọi tập lệnh này trong dialplan.

    Ví dụ về kế hoạch quay số dấu hoa thị

    Để gọi tập lệnh, tôi sẽ sử dụng một sơ đồ quay số đơn giản:

    Exten => 1234,1,Trả lời exten => 1234,n,wait(1) exten => 1234,n,Playback(howtomaketicket) exten => 1234,n,Playback(beep) exten => 1234,n,Set( FILE=$(CALLERID(num))--$(EXTEN)--$(STRFTIME($(EPOCH),%d-%m-%Y--%H-%M-%S)).wav) exten => 1234,n,MixMonitor($(FILE),/opt/test/send.sh [email được bảo vệ]"$(CDR(src))" "$(CALLERID(name))" "$(FILE)") exten => 1234,n,wait(28) exten => 1234,n,Playback(beep) exten => 1234,n,Phát lại(Cảm ơn!) mở rộng => 1234,n,Gác máy()
    Tôi sử dụng mixmonitor để ghi và chạy tập lệnh khi hoàn tất. Bạn có thể sử dụng bản ghi và điều này có thể sẽ tốt hơn. Ví dụ send.sh để gửi - giả sử bạn đã cấu hình mutt:

    #!/bin/bash #script để gửi thông báo # xuất các biến môi trường cần thiết # xuất tệp giấy phép Google GOOGLE_APPLICATION_CREDENTIALS=/opt/test/project.json # xuất tên dự án GCLOUD_PROJECT=project-id # xuất mã hóa python PYTHONIOENCODING=UTF-8 #danh sách các biến đầu vào EMAIL=$1 CALLERIDNUM=$2 CALLERIDNAME=$3 FILE=$4 # mã hóa lại tập tin âm thanhở dạng thô để cung cấp cho Google API sox /var/spool/asterisk/monitor/$FILE -r 16000 -b 16 -c 1 /var/spool/asterisk/monitor/$FILE.raw # gán giá trị biếnđã hoàn thành tập lệnh để chuyển đổi âm thanh thành văn bản và cắt bỏ TEXT=`python /opt/test/voice.py /var/spool/asterisk/monitor/$FILE.raw | sed -e "s/.*transcript"://" -e "s/)])]))//"` # gửi thư, bao gồm văn bản được nhận dạng trong thư echo "thông báo mới từ số: $ CALLERIDNUM $CALLERIDNAME $ TEXT " | mutt -s "Đây là tiêu đề của bức thư" -e "set [email được bảo vệ] realname="Tôi đang gửi thông báo" -a "/var/spool/asterisk/monitor/$FILE" -- $EMAIL

    Phần kết luận

    Như vậy, chúng ta đã giải quyết được vấn đề. Tôi hy vọng kinh nghiệm của tôi hữu ích cho ai đó. Tôi sẽ rất vui khi nhận được những bình luận (có lẽ đây là lý do duy nhất khiến nó đáng đọc Habr!). Trong tương lai, tôi dự định triển khai IVR với các yếu tố điều khiển bằng giọng nói dựa trên điều này.

    API Google Bài phát biểu- Dịch vụ nhận dạng giọng nói của Google.

    Nhận dạng giọng nói cho phép bạn tạo ra các hệ thống bảo trì tự động khách hàng trong trường hợp không thể áp dụng điều khiển bằng cảm ứng. Ví dụ, chúng ta có thể xem xét dịch vụ đặt vé máy bay, bao gồm việc lựa chọn số lượng lớn các thành phố. Menu cảm ứng trong dịch vụ như vậy không tiện lợi nên điều khiển bằng giọng nói sẽ hiệu quả nhất. Cuộc đối thoại giữa hệ thống và người đăng ký có thể như thế này:

    Hệ thống: Xin chào. Bạn muốn bay đi đâu? Người đăng ký: Hệ thống Kazan: Bạn muốn bay từ đâu? Thuê bao: Hệ thống Moscow: Chọn ngày khởi hành Thuê bao: 10 tháng 4
    • Điều hướng bằng giọng nói trong menu đa cấp IVR và kết nối tự động với đúng nhân viên
    • Nhận dạng địa chỉ để giao hàng
    • Tự động xác thực giọng nói của người dùng khi yêu cầu cá nhân hóa hoặc thông tin bí mật qua điện thoại hoặc trực tuyến
    • Hệ thống trợ giúp dịch vụ thông tin
    • Hệ thống tự phục vụ bằng giọng nói của khách hàng doanh nghiệp (yêu cầu số dư, kiểm tra tài khoản cá nhân, đặt vé)

    Một hệ thống nhận dạng giọng nói thường bao gồm các phần sau:

    • Ghi tin nhắn từ thuê bao
    • Nhận dạng giọng nói và nhận dữ liệu văn bản từ dịch vụ
    • Phân tích thông tin nhận được và thực hiện các hành động cần thiết

    Để sử dụng API Google Bài phát biểu trên hệ thống của bạn, hãy làm như sau:

    Bước 1. Tải xuống và nhập tập lệnh vào hệ thống của bạn OK nói.

    Tải xuống kịch bản:(đối với các phiên bản OK nói cũ hơn 2.10)

    Kho lưu trữ chứa hai tập lệnh:

    • Google_Speech_API_main- kịch bản để ghi âm tin nhắn thoại, là một ví dụ sử dụng đúng dịch vụ nhận dạng trong kịch bản chính.
    • Google_Speech_API- tập lệnh gửi bản ghi tới dịch vụ Google và nhận tin nhắn được nhận dạng.

    Sau khi nhập tập lệnh vào OK nói, cứu họ" Đến máy chủ"

    LƯU Ý: API Google Speech là sản phẩm trả phí. Trong tập lệnh (Thành phần yêu cầu web Giong noi Google) một khóa dùng thử được sử dụng, khóa này có thể bị chặn do một số yêu cầu nhất định. Trong quá trình kiểm tra số tiền tối đa không tìm thấy yêu cầu nào Nếu bạn muốn mua Phiên bản trả tiền API Google Speech liên hệ với bộ phận hỗ trợ của Google.

    Bước 2. Trong mô-đun " Sự quản lý" - "Số bên ngoài"thêm vào số mở rộng với loại " Ra mắt IVR". Chọn kịch bản IVR Google_Speech_API_main.

    Ngày nay, đơn giản là không thể sống được nếu không có máy tính. thế giới hiện đại. Bạn không bắt buộc phải là bậc thầy Photoshop hoặc người chỉnh sửa video chuyên nghiệp (tất nhiên trừ khi nó liên quan đến công việc). Nhưng có thể gõ một số văn bản là đòi hỏi tối thiểu.

    Số 2. API giọng nói trên web


    Chương trình trực tuyến API Web Speech có chức năng hoàn toàn giống với các chương trình trước.

    Dịch vụ này, giống như những dịch vụ được liệt kê ở trên, cũng do Google tạo ra.

    Trang chủ trông như thế:


    TRONG giao diện đơn giản Rõ ràng là để bắt đầu ghi âm, bạn cần chọn ngôn ngữ rồi nhấn micrô.

    Sau khi bạn bấm vào biểu tượng bên phải, chắc chắn hệ thống sẽ đưa ra yêu cầu truy cập.


    Sau khi đồng ý, bạn có thể bắt đầu công việc ngay lập tức. Nhập văn bản bằng giọng nói và phiên bản in của nó sẽ xuất hiện trong cửa sổ.

    Sau khi hoàn thành công việc, bạn có thể sao chép văn bản đến bất cứ nơi nào bạn cần (một lần nữa, ctrl+C, ctrl+V).

    Số 3. máy nói chuyện

    Không ít chương trình đơn giản– đây là Talktyper.

    Để bắt đầu, hãy truy cập trang web: https://talktyper.com/ru/index.html.


    Để bắt đầu, chỉ cần nhấp vào biểu tượng micrô ở bên phải.

    Không giống như những mô tả ở trên, máy đánh chữ này có thể được mở bằng bất kỳ trình duyệt nào. Mặc dù trang web được tạo ra ở Mỹ nhưng ứng dụng này dễ dàng nhận dạng các ngôn ngữ phổ biến nhất trên thế giới, bao gồm cả tiếng Nga.

    Talktyper đa chức năng: nó không chỉ gõ văn bản mà còn tự đặt dấu câu và sửa lỗi. Nếu hệ thống không thể nhận ra một từ bạn đọc là chính xác thì chắc chắn nó sẽ được đánh dấu.

    Ngoài ra, Talktyper còn có chức năng dịch thuật, lồng tiếng.

    Ghi chú! Sau khi nhập xong bằng giọng nói, hãy nhớ nhấp vào mũi tên để chuyển tài liệu đã nhập sang trường khác. Sau đó nó có thể được gửi bởi e-mail hoặc sao chép vào tập tin mong muốn.

    Các vấn đề có thể xảy ra khi làm việc với các chương trình quay số bằng giọng nói

    Khi bắt đầu sử dụng những chương trình này, chắc chắn bạn sẽ thắc mắc làm thế nào máy tính nhận ra giọng nói của chúng ta và sau đó dịch nó thành văn bản trực tiếp.

    Sơ đồ nhận dạng giọng nói của thiết bị trông như thế này:

    Toàn bộ quá trình có thể được chia thành 3 giai đoạn chính:

      Bộ nhận dạng âm thanh.

      Điều quan trọng là phải nói rõ ràng, to và micrô phải truyền giọng nói của bạn mà không bị gián đoạn.

      Xử lý ngôn ngữ.

      Càng có nhiều từ trong từ điển của chương trình thì chất lượng văn bản gõ càng tốt. Tức là mọi điều bạn nói sẽ được ghi nhận và truyền tới hình thức văn bản không bị biến dạng.

      Văn bản chính tả được công nhận.

      Chương trình trong chế độ tự động hiển thị chính tả phiên bản đồ họa lời nói chính tả, dựa vào sự tạm dừng, sự rõ ràng của từ, từ vựng được tìm thấy trong từ điển, v.v.

    Khi làm việc với người đánh máy máy tính, 2 vấn đề thường phát sinh nhất:

    1. Bộ nhận dạng âm thanh “bắt” giọng nói của bạn không liên tục.
    2. Không có đủ từ trong từ điển của hệ thống để nhận dạng mọi điều bạn nói.

    Để giải quyết vấn đề đầu tiên, bạn cần nói rõ ràng và to. Nhưng đối với vấn đề thứ hai, thực tế không có giải pháp nào, ít nhất là không có giải pháp miễn phí.

    Các phiên bản được phân phối miễn phí của chương trình nhận dạng giọng nói có rất nhiều hạn chế. từ vựng.

    Để cung cấp một chương trình có vốn từ vựng phong phú, các nhà phát triển cần đầu tư rất nhiều tiền, đó là lý do tại sao nhiều nhà nhận dạng chứng minh cấp thấp dịch lời nói thành văn bản.

    Đã tiến xa nhất trong vấn đề này công ty Google, bởi vì có đủ vốn để đầu tư. Công ty này, trong số những thứ khác, đã tạo ra từ điển trực tuyến lớn nhất giúp nhận dạng giọng nói và dịch nó sang phiên bản đồ họa.

    Nhìn hướng dẫn chi tiết trong video này:

    1. Khi bạn phát biểu, căn phòng phải yên tĩnh. Âm thanh của thiên nhiên, âm nhạc và tiếng khóc của trẻ em được hệ thống coi là tiếng ồn. Bởi vì điều này, văn bản sẽ được gõ với lỗi lớn.
    2. Đừng nói chuyện nếu bạn ăn thứ gì đó. Điều này không chỉ ảnh hưởng đến chất lượng của bộ sản phẩm mà còn nguy hiểm đến tính mạng.
    3. Trước khi bắt đầu, bạn cần chọn âm lượng chính xác cho giọng nói của mình và cũng hiểu độ nhạy của micrô của bạn.

      Để làm điều này, hãy thử viết ra một vài câu với giọng điệu quen thuộc. Nếu quá trình ghi bị gián đoạn, hãy tham khảo cài đặt micrô.

    4. Nghỉ giải lao ngắn giữa các từ.
    5. Tránh các cụm từ dài.

    Ai đó sẽ nói thế chương trình cho quay số bằng giọng nói là một trợ lý tuyệt vời giúp họ giải phóng đôi tay và làm cho cuộc sống của họ nói chung trở nên dễ dàng hơn. Những người khác sẽ quyết định rằng “trò chơi không đáng giá một ngọn nến”. Vì vậy, bạn phải tự mình quyết định xem có nên sử dụng chúng hay không.

    Và bạn đã biết nên lựa chọn dịch vụ nào rồi...