{"id":16630010,"url":"https://github.com/jm12138/iflytek-msc-python-sdk","last_synced_at":"2025-07-05T20:33:21.983Z","repository":{"id":191676691,"uuid":"683723896","full_name":"jm12138/iFLYTEK-MSC-Python-SDK","owner":"jm12138","description":"一个讯飞智能语音平台 MSC 的第三方 Python SDK，支持语音唤醒、语音识别、语音合成、语音评测等功能。A third-party Python SDK for a iFLYTEK MSC. Using for ASR, TSS, KWS.","archived":false,"fork":false,"pushed_at":"2024-01-27T15:50:14.000Z","size":14227,"stargazers_count":15,"open_issues_count":0,"forks_count":2,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-02T06:11:22.462Z","etag":null,"topics":["api","asr","iflytek","kws","msc","sdk","tts"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jm12138.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2023-08-27T14:00:14.000Z","updated_at":"2025-01-20T02:48:03.000Z","dependencies_parsed_at":"2024-01-27T06:28:47.197Z","dependency_job_id":"d834e9f8-2451-459d-96ec-c7cd89530e16","html_url":"https://github.com/jm12138/iFLYTEK-MSC-Python-SDK","commit_stats":null,"previous_names":["jm12138/iflytek-msc-python-sdk"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jm12138%2FiFLYTEK-MSC-Python-SDK","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jm12138%2FiFLYTEK-MSC-Python-SDK/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jm12138%2FiFLYTEK-MSC-Python-SDK/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jm12138%2FiFLYTEK-MSC-Python-SDK/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jm12138","download_url":"https://codeload.github.com/jm12138/iFLYTEK-MSC-Python-SDK/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":238930130,"owners_count":19554122,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["api","asr","iflytek","kws","msc","sdk","tts"],"created_at":"2024-10-12T04:44:35.735Z","updated_at":"2025-02-15T00:31:42.827Z","avatar_url":"https://github.com/jm12138.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# iFLYTEK-MSC-Python-SDK\n## Introduction\n* [中文](./README_CN.md) | English\n\n* A third-party Python SDK for a iFLYTEK MSC. Using for ASR, TSS, KWS.\n\n## Quick Start\n* Install MSC Python SDK\n\n    ```bash\n    $ pip install git+https://github.com/jm12138/iFLYTEK-MSC-Python-SDK\n    ```\n\n* Download MSC SDK\n\n    * [SDK Download](https://www.xfyun.cn/sdk/dispatcher)\n\n* Voice Wakeup (KWS) using Mic Input\n\n    ```python\n    import msc\n    import pyaudio\n    from ctypes import string_at, c_void_p\n    from threading import Event\n\n    # Audio Stream\n    p = pyaudio.PyAudio()\n    input_stream = p.open(\n        format=pyaudio.paInt16,\n        channels=1,\n        rate=16000,\n        input=True,\n        frames_per_buffer=2048\n    )\n\n    # Set APP ID\n    appid = '' \n\n    # Set MSC SDK DLL/SO File Path\n    # X86: SDK_DIR/bin/msc.dll\n    # X64: SDK_DIR/bin/msc_x64.dll\n    sdk_path = ''\n\n    # Set MSC Client\n    client = msc.MSC(sdk_path=sdk_path, params=f\"appid={appid}\".encode('UTF-8'))\n\n    # Stop Event\n    stop_event = Event()\n\n    # KSW Callback Function\n    def message_callback(\n            sessionID: bytes,\n            msg: int,\n            param1: int,\n            param2: int,\n            info: c_void_p,\n            userData: c_void_p\n    ):\n        # Print Result\n        print('sessionID: ', sessionID.decode('UTF-8'))\n        print('msg: ', msg)\n        print('param1: ', param1)\n        print('param2: ', param2)\n        print('info: ', string_at(info, param2).decode('UTF-8'))\n        print('userData: ', userData)\n\n        # Stop\n        stop_event.set()\n\n        return 0\n\n    # Set IVW Res Path\n    # SDK_DIR/bin/msc/res/ivw/wakeupresource.jet\n    ivw_res_path = ''\n\n    # Start KWS\n    client.kws(\n        params=f'ivw_res_path=fo|{ivw_res_path}'.encode('UTF-8'),\n        message_callback=message_callback,\n        stream=input_stream,\n        chunk_size=2048,\n        user_data=None,\n        stop_event=stop_event\n    )\n    ```\n\n        pIvwParam = {\n            \"rlt\": [\n                {\n                    \"sid\": \"undefine\",\n                    \"istart\": 33,\n                    \"iresid\": 119,\n                    \"iresIndex\": 2,\n                    \"iduration\": 189,\n                    \"nfillerscore\": 0,\n                    \"nkeywordscore\": 142754,\n                    \"ncm\": 1525,\n                    \"keyword\": \"ding1 dong1 ding1 dong1  \"\n                }\n            ]\n        }\n        data-\u003erlt = {\n            \"rlt\": [\n                {\n                    \"sid\": \"undefine\",\n                    \"istart\": 33,\n                    \"iresid\": 119,\n                    \"iresIndex\": 2,\n                    \"iduration\": 189,\n                    \"nfillerscore\": 0,\n                    \"nkeywordscore\": 142754,\n                    \"ncm\": 1525,\n                    \"keyword\": \"ding1 dong1 ding1 dong1  \"\n                }\n            ]\n        }\n        data-\u003edatalen=76864\n        sessionID:  civw1PdHHBHvGQRgCahtaaBJvtTw1WLl5L\n        msg: 1\n        param1: 0\n        param2: 98\n        info: {\n            \"sst\": \"wakeup\",\n            \"id\": 2,\n            \"score\": 1525,\n            \"bos\": 330,\n            \"eos\": 2220,\n            \"keyword\": \"lao3-zhang1-lao3-zhang1\"\n        }\n        userData:  None\n        wakeup : ivw param = {\n            \"rlt\": [\n                {\n                    \"sid\": \"undefine\",\n                    \"istart\": 33,\n                    \"iresid\": 119,\n                    \"iresIndex\": 2,\n                    \"iduration\": 189,\n                    \"nfillerscore\": 0,\n                    \"nkeywordscore\": 142754,\n                    \"ncm\": 1525,\n                    \"keyword\": \"ding1 dong1 ding1 dong1  \"\n                }\n            ]\n        }\n\n* Speech Recognizer (ASR) using Mic Input\n\n    ```python\n    import msc\n    import pyaudio\n\n    # Audio Stream\n    p = pyaudio.PyAudio()\n    input_stream = p.open(\n        format=pyaudio.paInt16, channels=1, rate=16000, input=True, frames_per_buffer=2048\n    )\n\n    # Set APP ID\n    appid = '' \n\n    # Set MSC SDK DLL/SO File Path\n    # X86: SDK_DIR/bin/msc.dll\n    # X64: SDK_DIR/bin/msc_x64.dll\n    sdk_path = ''\n\n    # Set MSC Client\n    client = msc.MSC(sdk_path=sdk_path, params=f\"appid={appid}\".encode('UTF-8'))\n\n    # Set Domain\n    domain = \"iat\"\n\n    # Start ASR\n    for item in client.asr(\n        params=f\"domain={domain}\".encode(\"UTF-8\"),\n        stream=input_stream,\n        chunk_size=2048,\n    ):\n        print(item.decode(\"UTF-8\"))\n    ```\n\n        {\"sn\":1,\"ls\":false,\"bg\":0,\"ed\":0,\"ws\":[{\"bg\":64,\"cw\":[{\"sc\":0.0,\"w\":\"今天\"}]},{\"bg\":132,\"cw\":[{\"sc\":0.0,\"w\":\"天气\"}]},{\"bg\":164,\"cw\":[{\"sc\":0.0,\"w\":\"怎么样\"}]}]}\n        {\"sn\":2,\"ls\":true,\"bg\":0,\"ed\":0,\"ws\":[{\"bg\":235,\"cw\":[{\"sc\":0.0,\"w\":\"？\"}]}]}\n\n* Speech Synthesizer (TTS)\n\n    ```python\n    import msc\n    import pyaudio\n\n    # Audio Stream\n    p = pyaudio.PyAudio()\n    output_stream = p.open(format=pyaudio.paInt16, channels=1, rate=16000, output=True)\n\n    # Set APP ID\n    appid = '' \n\n    # Set MSC SDK DLL/SO File Path\n    # X86: SDK_DIR/bin/msc.dll\n    # X64: SDK_DIR/bin/msc_x64.dll\n    sdk_path = ''\n\n    # Set MSC Client\n    client = msc.MSC(sdk_path=sdk_path, params=f\"appid={appid}\".encode('UTF-8'))\n\n    # Set Text Encoding\n    text_encoding = \"UTF8\"\n\n    # Start TTS\n    for item in client.tts(\n        params=f\"text_encoding={text_encoding}\".encode(\"UTF-8\"),\n        text=\"你好，我是您的语音助手，有什么需要帮助的吗？\".encode(\"UTF-8\"),\n    ):\n        output_stream.write(item)\n    ```\n\n## Documentation\n\n* [Offical Documents](https://www.xfyun.cn/doc/mscapi/Windows\u0026Linux/wlapi.html)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjm12138%2Fiflytek-msc-python-sdk","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjm12138%2Fiflytek-msc-python-sdk","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjm12138%2Fiflytek-msc-python-sdk/lists"}